在python中执行两行以上的bash代码

lea*_*ing 0 python linux bash subprocess

我正在尝试编写python代码,它将在linux机器的cmd终端中执行以下步骤

cd /path/to/destination/
3dAFNItoNIFTI *epi*
Run Code Online (Sandbox Code Playgroud)

我试过subprocess.call两次,一次cd,然后执行该命令.但似乎没有用.

有没有办法使用子进程调用两行inux命令代码?

谢谢!

mip*_*adi 6

cd一次subprocess调用不会影响另一个调用,因为它们是在不同的进程中执行的.你想用os.chdir:

with os.chdir("/path/to/destination"):
    subprocess.call(cmd)
Run Code Online (Sandbox Code Playgroud)

并非所有版本的Python都支持with os.chdir; 如果你没有,你可以这样做:

old_dir = os.getcwd()
os.chdir("/path/to/destination")
subprocess.call(cmd)
os.chdir(old_dir)
Run Code Online (Sandbox Code Playgroud)