gpt4 book ai didi

python - __file__ 和 os.path 模块运行不正常?

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:57 25 4
gpt4 key购买 nike

import os
print __file__
print os.path.dirname(__file__)
os.chdir('/tmp')
print __file__ # unchanged, of course
print os.path.dirname(__file__) # now broken

我在 dirname(__file__) 上面有这个问题在os.chdir 之后不能再依赖已在脚本中使用,在模块加载器设置 __file__ 之后.

假设您可能不知道在哪里/何时/如何解决这个问题,通常的工作机制是什么 os.chdir可能之前被调用过?

编辑:我希望第二个例子能更好地阐明我的问题

import os
old_dir = os.getcwd()
print os.path.abspath(__file__)
os.chdir('/tmp')
print os.path.abspath(__file__)
os.chdir(old_dir)

输出是这样的:

wim@wim-acer:~$ python --version
Python 2.7.1+
wim@wim-acer:~$ pwd
/home/wim
wim@wim-acer:~$ python /home/wim/spam.py
/home/wim/spam.py
/home/wim/spam.py
wim@wim-acer:~$ python ./spam.py
/home/wim/spam.py
/tmp/spam.py

最佳答案

__file__ 必须存在于 sys.path 某处。

for dirname in sys.path:
if os.path.exists( os.path.join(dirname,__file__) ):
# The directory name for `__file__` was dirname

关于python - __file__ 和 os.path 模块运行不正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com