在Python中设置路径

在Python中设置路径,python,path,Python,Path,有没有办法在Python中设置终端路径?我有一些编译过的二进制文件,我想在文件夹中使用,比如说C:/Program Files/PostgreSQL/9.2/bin中的foo.exe,我想在os或sys模块中一定有可以工作的东西,但我找不到任何: # This works, but ugly psqldir = 'C:/Program Files/PostgreSQL/9.2/bin' currentdir = os.getcwd() os.chdir(psqldir) os.system('f

有没有办法在Python中设置终端路径?我有一些编译过的二进制文件,我想在文件夹中使用,比如说
C:/Program Files/PostgreSQL/9.2/bin
中的
foo.exe
,我想在
os
sys
模块中一定有可以工作的东西,但我找不到任何:

# This works, but ugly
psqldir = 'C:/Program Files/PostgreSQL/9.2/bin'
currentdir = os.getcwd()
os.chdir(psqldir)
os.system('foo')
os.chdir(currentdir)

# Does not work
os.system('set PATH=%PATH%;C:/Program Files/PostgreSQL/9.2/bin')
os.system('foo')

# Does not work
sys.path.append('C:\\Program Files\\PostgreSQL\\9.2\\bin')
os.system('foo')

谢谢

像这样的东西应该有用

import os

psqldir = 'C:/Program Files/PostgreSQL/9.2/bin'
os.environ['PATH'] = '%s;%s' % (os.environ['PATH'], psqldir)
os.system('foo')
…或者通过其完整路径调用
foo.exe

os.system('C:/Program Files/PostgreSQL/9.2/bin/foo')
然而,正如kindall(现已删除)的回答所暗示的,值得注意文档中的这一段

该模块提供了更强大的工具来生成新的 处理并检索其结果;使用该模块比使用 这个功能。见
子流程
文档中的部分了解一些有用的配方


像这样的东西应该有用

import os

psqldir = 'C:/Program Files/PostgreSQL/9.2/bin'
os.environ['PATH'] = '%s;%s' % (os.environ['PATH'], psqldir)
os.system('foo')
…或者通过其完整路径调用
foo.exe

os.system('C:/Program Files/PostgreSQL/9.2/bin/foo')
然而,正如kindall(现已删除)的回答所暗示的,值得注意文档中的这一段

该模块提供了更强大的工具来生成新的 处理并检索其结果;使用该模块比使用 这个功能。见
子流程
文档中的部分了解一些有用的配方


我的理解是,您需要添加一个环境变量。我认为您应该能够使用os.system/os.environ或子流程来实现这一点。 同时考虑到您使用的是windows,您可能希望查看这些文章


我的理解是,您需要添加一个环境变量。我认为您应该能够使用os.system/os.environ或子流程来实现这一点。 同时考虑到您使用的是windows,您可能希望查看这些文章


os.system()
?不好…哎哟。有更好的款式吗?我愿意接受建议。@ephedyn看到kindall答案的最后一句话。@Aya我没有看到kindall的答案,发生了什么事吗?顺便说一句,你的回答正是我想做的-谢谢!唉,金德尔已经删除了他们的答案——不管是什么。因此答案是“使用
子流程
模块”。
os.system()
?不好…哎哟。有更好的款式吗?我愿意接受建议。@ephedyn看到kindall答案的最后一句话。@Aya我没有看到kindall的答案,发生了什么事吗?顺便说一句,你的回答正是我想做的-谢谢!唉,金德尔已经删除了他们的答案——不管是什么。因此答案是“使用
子流程
模块”。感谢提示,我们将仔细阅读。感谢提示,我们将仔细阅读。使用完整路径调用+1,-0.4不推荐
子流程
,将+0.6转为+1。@glglglglgl我认为篡夺kindall对
子流程的建议是不礼貌的,但现在他删除了它,我会添加它。+1表示使用完整路径调用,-0.4表示不推荐
子流程
,使+0.6,循环到+1。@glglglglglgl我认为篡夺kindall关于
子流程
的建议是不礼貌的,但现在他删除了它,我会添加它。