我正在使用 python 合并多个 CSV 文件。
我使用此代码来查找 CSV 文件:
with open('C:\TODAY.csv', 'w') as f_obj:
rows = []
files = os.listdir('C:\RAW\\')
然后,我迭代文件并使用以下方法创建行列表:
for f in files:
if fnmatch.fnmatch(f, '*.csv') and not fnmatch.fnmatch(f, 'TODAY.CSV'):
print f
rows.append(open(f).readlines())
为了调试,我添加了 print f
。
发生的事情是这样的:
尝试执行 rows.append
函数时,出现错误,提示 results1.csv
不存在,但 print f
确实打印results1.csv
因此它必须存在,并且 python 知道它存在,因为它可以打印文件名。
那么为什么如果 python 可以打印文件名,python 会在下一行说它不存在吗?
回溯是:
Traceback (most recent call last):
File "Exc.py", line 22, in <module>
rows.append(open(f).readlines())
IOError: [Errno 2] No such file or directory: 'result1.csv
最佳答案
os.listdir
给出文件名称列表,而不是文件路径。仅当程序的当前目录已经是您列出的目录时,文件名才可用于打开文件。
使用os.path.join
将目录路径与文件名连接起来以给出文件路径:
rows.append(open(os.path.join('C:\RAW\\', f)).readlines())
关于python - 文件不存在,但 python 正在打印文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25845272/