首页 > 解决方案 > 无法打开同一目录中的文件

问题描述

python 无法在同一目录中加载文件导致很多问题在 MacOS 10.15.7 上运行并使用 pycharm 我所有的程序昨天都运行良好,现在似乎找不到这些文件。

with open('lorem.txt',mode='r') as file:
    for line in file:
        print(line)

这是返回此回溯

Traceback (most recent call last):
File "/Users/calblanco/PycharmProjects/pundont/main.py", line 2, in <module>
with open('lorem.txt','r') as file:
FileNotFoundError: [Errno 2] No such file or directory: 'lorem.txt'

python 文件和 txt 文件都在完全相同的目录中。这也发生在我拥有的其他一些依赖读取文件的程序中

标签: pythonmacosfilepycharm

解决方案


尽管该文件位于脚本目录中,但程序的当前工作目录可能完全位于其他位置。对于像 IDE 这样的 GUI 程序尤其如此。当您从 IDE 运行程序时,运行对话框中可能有一个用于设置 CWD 的字段。

但还有另一种方式。当 python 运行一个脚本时,它会将它的文件名包含在一个名为__file__. 您可以使用它来定位脚本的目录,并从那里构建其任何文件的路径。使用该pathlib模块,你可以做

from pathlib import Path

script_dir = Path(__file__).absolute().parent
lorem_file = script_dir/"lorem.txt"
with lorem_file.open() as file:
    for line in file:
        print(line, end="")

推荐阅读