如何使用 python 和 os 合并特定文件夹中的所有 csv 文件
How to merge all csv files in a specific folder using python and os
如何使用 os.
合并特定文件夹中的所有 csv 文件
所以下面的代码完成了工作,但它将所有文件连接到脚本所在的同一目录中。
如何在不同的文件夹中使用它?
我的代码:
import os
import pandas as pd
import numpy as np
def get_df():
df=pd.DataFrame()
for file in os.listdir():
if file.endswith('.csv'):
aux=pd.read_csv(file, error_bad_lines=False)
df=df.append(aux)
return df
df=get_df()
df.to_csv(f"file_name.csv")
我尝试添加文件夹名称,但没有找到文件。
for file in os.listdir('My_folder_name\'):
我在 os 模块文档中找到了更改目录 os.chdir("C:\Users\Desktop\my_folder_name\my_new_folder_name")
.
的代码
https://www.tutorialsteacher.com/python/os-module
所以我只是在循环之前添加了这一行,现在它起作用了!!
def get_df():
df=pd.DataFrame()
os.chdir("C:\Users\Desktop\my_folder_name\my_new_folder_name")
for file in os.listdir():
if file.endswith('.csv'):
aux=pd.read_csv(file, error_bad_lines=False)
df=df.append(aux)
return df
df=get_df()
df.to_csv(f"file_name.csv")
有多种方法可以解决它,具体取决于要执行的合并类型。
考虑到您的具体要求(Python
和 os
),并假设想要 concat
文件,以下将完成工作(包括具有相同 concat
的文件) =28=])
import os
os.system("awk '(NR == 1) || (FNR > 1)' file*.csv > merged.csv")
其中NR
和FNR
表示正在处理的行号。
FNR
是每个文件中的当前行。
NR == 1
包括第一个文件的第一行 (header),而 (FNR > 1) 跳过每个后续文件的第一行。
如何使用 os.
合并特定文件夹中的所有 csv 文件所以下面的代码完成了工作,但它将所有文件连接到脚本所在的同一目录中。
如何在不同的文件夹中使用它?
我的代码:
import os
import pandas as pd
import numpy as np
def get_df():
df=pd.DataFrame()
for file in os.listdir():
if file.endswith('.csv'):
aux=pd.read_csv(file, error_bad_lines=False)
df=df.append(aux)
return df
df=get_df()
df.to_csv(f"file_name.csv")
我尝试添加文件夹名称,但没有找到文件。
for file in os.listdir('My_folder_name\'):
我在 os 模块文档中找到了更改目录 os.chdir("C:\Users\Desktop\my_folder_name\my_new_folder_name")
.
https://www.tutorialsteacher.com/python/os-module
所以我只是在循环之前添加了这一行,现在它起作用了!!
def get_df():
df=pd.DataFrame()
os.chdir("C:\Users\Desktop\my_folder_name\my_new_folder_name")
for file in os.listdir():
if file.endswith('.csv'):
aux=pd.read_csv(file, error_bad_lines=False)
df=df.append(aux)
return df
df=get_df()
df.to_csv(f"file_name.csv")
有多种方法可以解决它,具体取决于要执行的合并类型。
考虑到您的具体要求(Python
和 os
),并假设想要 concat
文件,以下将完成工作(包括具有相同 concat
的文件) =28=])
import os
os.system("awk '(NR == 1) || (FNR > 1)' file*.csv > merged.csv")
其中NR
和FNR
表示正在处理的行号。
FNR
是每个文件中的当前行。
NR == 1
包括第一个文件的第一行 (header),而 (FNR > 1) 跳过每个后续文件的第一行。