我试图在不使用pandas的情况下将多个csv文件导入单个文件。我有以下代码。但是,我希望能够将文件名添加为输出文件中的新列。我已经用Pandas完成了它,但是花费了几百个csv文件使用Pandas。以下代码可用于创建单个文件。
import shutil
import glob, os
os.chdir("D:\\DATA")
allFiles = glob.glob("**/*.csv", recursive = True)
with open('D:\\AllData.csv', 'wb') as outfile:
for i, fname in enumerate(allFiles):
with open(fname, 'rb') as infile:
shutil.copyfileobj(infile, outfile)
非常感谢任何帮助。
答案 0 :(得分:0)
逐行完成任务不应该花费太长时间
import glob, os
os.chdir("D:\\DATA")
allFiles = glob.glob("**/*.csv", recursive = True)
data = []
for i, fname in enumerate(allFiles):
with open(fname, 'r') as infile:
read_lines = infile.readlines()
read_lines = ['{0},{1}'.format(line.rstrip('\n'),fname) for line in read_lines]
data += read_lines
with open('D:\\AllData.csv', 'w') as outfile:
outfile.write('\n'.join(data))
答案 1 :(得分:0)
以下使用os.path.basename工作。
filename = os.path.basename(fname).split('。')[0] 对于read_lines中的行,read_lines = [' {0},{1}' .format(line.rstrip(' \ n'),filename)