如果我更改当前的工作目录,为什么_文件_成为无效路径?

2024-04-16 06:57:47 发布

您现在位置:Python中文网/ 问答频道 /正文

/tmp执行test.py

import os

print os.path.abspath(__file__)
os.chdir('/var')
print os.path.abspath(__file__)

输出:

/tmp/test.py
/var/test.py

我希望第二个输出是/tmp/test.py。这是错误还是预期的行为?有没有办法获得不受chdir影响的文件的实际位置

我正在使用Python 2.7


Tags: 文件pathpytestimportosvar错误
1条回答
网友
1楼 · 发布于 2024-04-16 06:57:47

根据调用python脚本的方式,__file__可以是绝对路径或相对路径(例如,前者为python /tmp/test.py,后者为cd /tmp; python test.py

因此,如果__file__是相对的,那么os.path.abspath将使用当前工作目录作为基本目录

通过在测试脚本中添加print __file__很容易证明

相关问题 更多 >