我有这个程序Namechange.py,它改变了文件中的名字(总是削减一些无用的结尾)。一切正常,但我在很多不同的目录中使用这个文件,当我想改变一些东西时,这很麻烦。我正在寻找的是一个python脚本 让我在我选择的目录中执行此脚本。
我的第一个想法是我运行了另一个复制Namechange.py的脚本 在所需的目录中,然后在那里执行它并删除它 一切都结束了。复制部分有效。 直到现在我尝试使用符号链接(它只是在工作目录中执行脚本:D)以及子进程模块,它表示我使用时没有这样的目录:
subprocess.call([" cd",newpath])
newpath是我想要使用脚本的目录的绝对路径。
错误OSError:[Errno 2]没有这样的文件或目录。
如果某人有一种优雅的方式来实现这一点,我会很高兴。
谢谢,再见
答案 0 :(得分:4)
在脚本的开头
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
答案 1 :(得分:1)
从任何地方使用的东西应该可以从任何地方访问。
这就是系统的PATH
环境变量的来源。
您应该将脚本移动到PATH
中的目录,或者使用脚本的位置扩展PATH
。
注意:
确保脚本独立于位置:广泛使用sys.path
,尝试尽可能使用sys.path.join(base, sub)
等等。