首页 > 解决方案 > 如何在 Python 中创建 csv 时修复“没有这样的文件或目录”错误

问题描述

我正在尝试创建一个新的 .csv 文件,但with open(...)在代码部分中出现“没有这样的文件或目录”。

我修改了with open(...)代码的一部分以排除方向,替换为字符串名称,它工作得很好。该文档是用我在 C 驱动器上的所有 PyCharm 划痕创建的。

我相信值得注意的是,我在 C: Drive 上运行 python,而 D: Drive 上存在给我问题的目录。不确定这是否真的有影响,但我

path = r"D:\Folder_Location\\"
plpath = pathlib.PurePath(path)
files = []
csv_filename = r"D:\Folder_Location\\"+str(plpath.name)+".csv"

#Create New CSV
with open(csv_filename, mode='w',newline='') as c:
    writer = csv.writer(c)
    writer.writerow(['Date','Name'])

我希望代码创建一个新的 .csv 文件,然后脚本的其余部分将在特定文件夹位置使用该文件,但我得到了以下错误:

  File "C:/Users/USER/.PyCharm2018.2/config/scratches/file.py", line 14, in <module>
    with open(csv_filename, mode='w',newline='') as c:
FileNotFoundError: [Errno 2] No such file or directory: '[INTENDED FILE NAME]'

Process finished with exit code 1

错误代码正确地构建了文件名,但随后说它找不到位置,这让我再次相信,这不是代码本身,而是单独驱动器的问题(推测)。此外,第 14 行是with open(...)开始的地方。

编辑:我测试了一个理论,并将文件夹移动到 C: 驱动器,仅使用来自新位置的复制和粘贴更新了路径(在 Python 中仍然使用文件路径末尾的 \),并且它起作用了。新的 .csv 文件现在就在那里。那么为什么Drive会有所作为呢?Python的权限问题?

标签: pythoncsv

解决方案


原始字符串不能以一个反斜杠 '\' 结尾,因此您在代码中使用的path = r"D:\Folder_Location\\"是正确的,但实际上您在路径末尾不需要任何反斜杠:

我运行了一些类似的测试,一切顺利,当我使用不存在的目录时才出现同样的错误

这就是我得到的:

FileNotFoundError: [Errno 2] No such file or directory: 'E:\\python\\myProgects\\abc\\\\sample3.txt'

所以我敢打赌,您分配了一个不存在的路径,path = r"D:\Folder_Location\\"或者您的路径指的是文件而不是文件夹,以确保只运行以下命令:

import os
path = r"D:\Folder_Location\\"
print(os.path.isdir(path))  # print true if folder already exists

更好的方法:

file_name = str(plpath.name)+".csv"
path = r"D:\Folder_Location"
csv_filename = os.path.join(path, file_name)

推荐阅读