我尝试做一些非常简单的事情,使用more_itertools将CSV文件1中的唯一行输出到CSV文件2,作为许多CSV文件的迭代过程。但是,我收到错误:
IOError: [Errno 2] No such file or directory: u'first_file.csv'
这是有问题的代码。我正在迭代一个名为" newCsvFileList"的列表对象。包含许多CSV文件。我正在使用more_itertools库并在脚本开头从它导入unique_everseen方法。
outDir = filepath + "\\final_tables"
for i in newCsvFileList:
outCsv = os.path.join(outDir, i)
if not os.path.exists(outDir):
try:
os.makedirs(outDir)
except OSError as exc:
if exc.errno != errno.EEXIST:
raise
with open(i, 'r') as f, open(outCsv, 'w') as out_file:
out_file.writelines(unique_everseen(f))
正在成功创建outDir目录,但显然没有创建outCSV文件。
答案 0 :(得分:0)
我认为我仍然会发布修复程序以保持彻底性。
outDir = filepath + "\\final_tables"
inDir = filepath + "\\input_tables"
for i in newCsvFileList:
oldCsv = os.path.join(inDir, i) # This is what was missing
outCsv = os.path.join(outDir, i)
if not os.path.exists(outDir):
try:
os.makedirs(outDir)
except OSError as exc:
if exc.errno != errno.EEXIST:
raise
with open(i, 'r') as f, open(outCsv, 'w') as out_file:
out_file.writelines(unique_everseen(f))