获取调用Python脚本的快捷方式所在的目录

5
如何获取调用 Python 脚本的 Windows 快捷方式 的目录?我希望在不同位置有多个快捷方式指向同一个脚本,如果需要,我可以编辑该脚本,但是需要访问从中调用脚本的目录。这种情况是否可行?
然后,该脚本可能会使用 py2exe 或类似的工具进行编译,因此如果在 THAT 阶段才能实现它,那么我也可以接受。谢谢!
3个回答

5
最简单的解决方案是使用批处理脚本而不是快捷方式。
只需输入python C:\path\to\script\script.py,脚本将具有正确的CWD。
在Windows上创建快捷方式时,默认情况下,“开始于:”属性设置为链接文件所在的文件夹。
脚本不知道它是从快捷方式调用的,更不知道该快捷方式位于何处。
您可以将快捷方式的“开始于:”属性更改为快捷方式所在文件夹的路径。
然后,您可以使用os.getcwd()获取该路径。
不幸的是,将Start in:设置为 . 无效。

有些烦人,但仍然有效。那么,有没有一种Pythonic的方法可以创建一个快捷方式,自动将“开始位置”属性设置为您想要创建它的文件夹? - Cryptite
只需使用批处理文件来执行脚本。这样就好像你从命令行调用了脚本,脚本将会得到正确的工作目录。(添加到答案中) - Acorn

1
通常情况下,您无法获取此信息。您应该使用argv来切换脚本的行为。

-1

你可以这样做

import os
print os.getcwd()

os.getcwd()

返回一个字符串,表示当前工作目录。 可用性:Unix,Windows。


这个不起作用。它会打印脚本本身的目录。 - Acorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接