【问题标题】:Access a file even if the cwd has changed即使 cwd 已更改也访问文件
【发布时间】:2020-11-30 06:20:47
【问题描述】:
以下代码完美运行:
with open('data.txt') as data:
print(data)
但如果我使用os.chdir 更改 CWD,它将无法正常工作
有什么方法可以让我在访问文件的同时还能更改 CWD?
注意:CWD 的变化方式取决于用户如何使用它。
【问题讨论】:
标签:
python
python-3.x
io
chdir
【解决方案1】:
谢谢你的回答
但我想我自己已经明白了!
在我调用os.chdir 函数之前,
我可以的,
from pathlib import Path
datafile = Path('data.txt').absolute()
然后我将在我运行它的任何计算机中获取绝对路径。
【解决方案2】:
我认为这是不可能的,但我建议您如果打算部署它,请发出一条错误消息,告诉用户将您要打开的文件放在与 python 脚本相同的目录中
【解决方案3】:
一种选择是在更改目录之前打开文件。
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)