运行 Python 来自不同工作目录的脚本

Running Python Script from different working directory

我有这个程序 Namechange.py 可以从文件中更改名称(总是删除一些无用的结尾)。一切正常,但我在很多不同的目录中经常使用这个文件,当我想改变一些东西时这很麻烦。我要搜索的是 python 脚本 让我在我选择的目录中执行此脚本。

我的第一个想法是 运行 另一个复制 Namechange.py 的脚本 在所需的目录中,然后在那里执行并在之后删除它 一切都结束了。复制部分有效。 直到现在我尝试使用符号链接(它只是在工作目录中执行脚本:D)以及子进程模块,当我使用时它说没有这样的目录:

subprocess.call(["cd", newpath])

newpath 是我要使用脚本的目录的绝对路径。

出现错误 OSError: [Errno 2] 没有那个文件或目录。

如果有人有一个优雅的方法来实现这一点,我会很高兴。

谢谢再见

在脚本的开头

import os
os.chdir("/dir/to/goto/before/running/the/script")

# rest of the logic goes here

假设你的脚本是这样的运行

./my_script dir/to/work/on

那你就可以了

import os
import sys
os.chdir(sys.argv[1])

# rest of the logic goes here

您在任何地方使用的东西都应该可以从任何地方访问。

这就是系统 PATH 环境变量发挥作用的地方。

您应该将脚本移动到 PATH 中的目录,或者使用脚本的位置扩展 PATH

注意: 确保脚本有效 location-independently:广泛使用 sys.path,尽可能使用 sys.path.join(base, sub) 等...