python - 文件不存在,但 python 正在打印文件名?

标签 python csv

我正在使用 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/

相关文章:

python - Pytessaract image_to_pdf_or_hocr 函数在 AWS lambda 中不起作用

python - 我如何动态地(循环)在 google colab 中显示图像?

python - 类型错误 : list indices must be integers not list

python - 如何使用 wxpython 在 1 个应用程序中放置 2 个框架?

python - 如何将python包安装到指定目录

python - 当其中有 HTML 转义字符串时,使用 python (pandas) 读取 CSV 文件

php - 读取 CSV 文件并存入 MySQL 数据库

regex - 使用正则表达式在 Notepad++ 中删除 CSV 文件中的回车符

php - Magento translate.csv 文件未加载

regex - Notepad++ 正则表达式替换 CSV 中引用列之间的引号