【发布时间】:2015-05-05 17:26:52
【问题描述】:
如果我在 /home/usr 并且我调用 python /usr/local/rcom/bin/something.py
我怎样才能让 something.py 中的脚本知道他驻留在 /usr/local/rcom/bin 中?os.path.abspath 是用 cwd 计算的,在这种情况下是 /home/usr。
【问题讨论】:
标签: python file python-3.x path
如果我在 /home/usr 并且我调用 python /usr/local/rcom/bin/something.py
我怎样才能让 something.py 中的脚本知道他驻留在 /usr/local/rcom/bin 中?os.path.abspath 是用 cwd 计算的,在这种情况下是 /home/usr。
【问题讨论】:
标签: python file python-3.x path
您可以依赖脚本/模块的__file__ 属性。
import os
path, filename = os.path.split(os.path.abspath(__file__))
print path
打印
/usr/local/rcom/bin
如果在您的something.py 中执行。
编辑:是的,您需要考虑绝对路径;-),即os.path.abspath
【讨论】:
在 something.py 里面:
import os
print os.path.dirname(__file__)
请注意,这仅在您使用 something.py 的绝对路径调用时才有效。如果您使用相对路径(例如 scripts/something.py),您需要将代码更改为:
import os
print os.path.dirname(os.path.abspath(__file__))
【讨论】: