获取 FileNotFoundError,尽管目录存在

Getting a FileNotFoundError, despite directory existing

提问人:fgootkind 提问时间:8/17/2023 更新时间:8/17/2023 访问量:28

问:

我正在尝试遍历目录中的文件,但我一直收到未找到文件的错误,尽管该目录实际上是从 Windows 资源管理器复制粘贴的。它没有存储在 C 盘中,所以这可能是问题所在吗?

这是代码。

# Setting directory
obj_path = "D:/ultivue/1604-2201 Core 8plex (All Runs) Region Object Data/run 2"

# For loop to go through all files in the path
for file in obj_path:
    data = pd.read_csv(file)

这是错误。

FileNotFoundError: [Errno 2] No such file or directory: 'D'
python filenotfounderror

评论

1赞 Brian61354270 8/17/2023
你认为有什么作用?尝试。您可能打算使用for file in obj_path:for file in obj_path: print(file)data = pd.read_csv(obj_path)
0赞 fgootkind 8/17/2023
run 2是存储文件的目录,而不是文件本身。
0赞 tdelaney 8/17/2023
obj_path只是一个字符串。python 不可能知道你想把它用作需要列出的路径。您必须将它与一些执行此类操作的文件 API 一起使用。

答:

3赞 JRiggles 8/17/2023 #1

字符串在 Python 中是可迭代的,这意味着它们可以循环。所以像这样的东西会单独打印每个字符。for char in 'word': print(char)'word'

正如所写的那样,您正在尝试使用 ,这就是为什么它停在“D”(字符串的第一个字母)处并在尝试将其作为 csv 打开时抛出错误。obj_pathfor _ in

您可以使用模块的方法来遍历给定目录中的所有文件pathlibiterdir()

import pathlib

# Setting directory (instantiate as a pathlib.Path object)
obj_path = pathlib.Path("D:/ultivue/1604-2201 Core 8plex (All Runs) Region Object Data/run 2")

# For loop to go through all files in the path
for file in obj_path.iterdir():
    data = pd.read_csv(file)
    # do something with 'data' here, as it's going to be overwritten
    # on each loop iteration!

评论

0赞 fgootkind 8/17/2023
这解决了,谢谢!
0赞 JRiggles 8/17/2023
@fgootkind 很高兴我能帮上忙!如果此答案对您有用,请将其标记为“已接受”(单击复选标记),以便其他人知道此问题已得到解答。祝您编码愉快!