就像 subprocess.Popen(target=, cwd=) 一样,它可以指定自己的本地工作目录。我不想每次都指定绝对路径,因为简单胜于复杂。os.chdir() 根本不起作用,因为它设置了一个全局变量(对吗?)。只要有多个线程, os.chdir() 就会失败。有什么建议么?谢谢!
我只是尝试 jorgenkg 的代码并稍作修改,您可能会明白我为什么要问这个问题。这是代码。
import os
import threading
import time
class child(threading.Thread):
def run(self ):
for i in range(1,3):
print "I am " + str(threading.current_thread())[7:15] + " in " + os.getcwd() + '\r\n'
time.sleep(2)
child().start() # prints "/username/path"
os.chdir('C://') # The process is changing directory
child().start() # prints "/"
这是结果。
I am Thread-1 in C:\Python27\Projects
I am Thread-2 in C:\
I am Thread-1 in C:\
I am Thread-2 in C:\
您可以看到调用 os.chdir() 后 Thread-2 不再在其原始工作目录上工作。