需要彼此的子进程命令,特别麻烦 "cd"
Subprocess commands that need each other, special trouble with "cd"
我想要一个程序,在给定参数的情况下,我正在使用 optpatse,更改工作目录并执行一些文件。
我试过:
subprocess.check_call(['ls'], cwd="/home")
这行得通。但如果我这样做:
subprocess.call("cd", shell=True)
subprocess.call("ls", shell=True)
这不起作用,"ls"
告诉我当前 python 文件在哪里工作。我知道这两个命令都能正确执行,但我需要在第一个命令的目录中执行第二个命令。
def followpath(path):
subprocess.call("cd", shell=True)
subprocess.call("ls", shell=True)
#The real thing I want to execute is:
subprocess.call("cd", shell=True)
subprocess.call(["cd", path])
subprocess.call(["python3", somepyfile])
我还希望,在 运行 终端中的脚本之后,工作目录更改为路径并执行 somepyfile。
subprocess.call()
创建一个子进程,因此您的 cd
将更改 child 进程的 CWD(然后立即退出)。您希望 os.chdir(path)
更改程序的 CWD。
我想要一个程序,在给定参数的情况下,我正在使用 optpatse,更改工作目录并执行一些文件。
我试过:
subprocess.check_call(['ls'], cwd="/home")
这行得通。但如果我这样做:
subprocess.call("cd", shell=True)
subprocess.call("ls", shell=True)
这不起作用,"ls"
告诉我当前 python 文件在哪里工作。我知道这两个命令都能正确执行,但我需要在第一个命令的目录中执行第二个命令。
def followpath(path):
subprocess.call("cd", shell=True)
subprocess.call("ls", shell=True)
#The real thing I want to execute is:
subprocess.call("cd", shell=True)
subprocess.call(["cd", path])
subprocess.call(["python3", somepyfile])
我还希望,在 运行 终端中的脚本之后,工作目录更改为路径并执行 somepyfile。
subprocess.call()
创建一个子进程,因此您的 cd
将更改 child 进程的 CWD(然后立即退出)。您希望 os.chdir(path)
更改程序的 CWD。