即使 cwd 已更改也访问文件

Access a file even if the cwd has changed

下面的代码完美运行:

with open('data.txt') as data:
    print(data)

但是如果我使用 os.chdir 更改了 CWD,它将不起作用

有没有一种方法可以在访问文件的同时仍然能够更改 CWD?

注意:CWD 的变化方式取决于用户的使用方式。

一种选择是在更改目录之前打开文件。

with open('data.txt') as data:
    ...
    os.chdir(...)
    ...
    print(data)

另一种选择是在更改之前保存原始目录,并使用它来形成绝对路径:

orig_dir = os.getcwd()
os.chdir(...)
...
with open(os.path.join(orig_dir, 'data.txt')) as data:
    print(data)

我认为这是不可能的,但我建议您如果打算部署它,请发出一条错误消息,告诉用户将您要打开的文件放在与 python 脚本

感谢您的回答

但我觉得我自己搞定了!

在我调用 os.chdir 函数之前, 我可以,

from pathlib import Path
datafile = Path('data.txt').absolute()

然后我将在我 运行 所在的任何计算机中获取绝对路径。