如果我有一个通过符号链接执行的Python脚本,有没有一种方法可以find脚本的path而不是符号链接? 我试过使用这个问题中提出的方法,但是他们总是返回到符号链接的path,而不是脚本。
例如,当它保存为我的“/usr/home/philboltt/scripts/test.py”时:
#!/usr/bin/python import sys print sys.argv[0] print __file__
然后我创build这个符号链接
ln -s /usr/home/philboltt/scripts/test.py /usr/home/philboltt/test
并使用执行脚本
/usr/home/philboltt/test
我得到以下输出:
/usr/home/philboltt/test /usr/home/philboltt/test
谢谢! 菲尔
你想要os.path.realpath()
函数。
os.readlink()
将解析一个符号链接,而os.path.islink()
会告诉你它是否是一个符号链接。
我相信你将需要检查文件是否是符号链接,如果是的话,找到它链接的地方。 例如…
try: print os.readlink(__file__) except: print "File is not a symlink"