2013-08-21 68 views
0

我想按順序運行兩個命令:使用python使用os.system 2個過程

  1. 首先去/var/tmp中/ test文件夾
  2. 然後svn籤這裏

爲了做到這一點我寫這個劇本:

open_folder = "cd /var/tmp/%s" % (folder_name) 
cmd = "%s %s/%s/%s && %s %s/%s/%s" % (svn_co, svn_co_directory, fst_product_name, fst_firmware_name, svn_co, svn_co_directory, snd_product_name, snd_firmware_name) 
    os.system(open_folder) 
    os.system(cmd) 

它創建folder_name,但不簽出folder_name。它簽出到我目前的目錄。爲什麼?

回答

1

嘗試os.chdir(path)更改目錄。或者你可以在第二個命令中使用該文件夾作爲前綴。 This解釋,爲什麼cd將無法​​正常工作。

我寧願使用subprocess.Popen(..)代替os.system。它允許爲您執行的命令指定當前的工作目錄。

+0

感謝您的評論。我看了你發送的解釋。我想再問一個問題。你知道什麼是過程和子過程?我的意思是他們有什麼不同? – caesar

+1

我不確定我是否正確回答你的問題。如果你啓動你的python程序,它的執行是OS中的一個進程。通過執行像'cd'這樣的命令,您可以調用另一個可執行文件。這個可執行文件在一個自己的進程中運行,這是你的python程序的一個子進程,因爲你在其中調用了它。我希望能回答你的問題。如果有人知道它更好,請糾正我。 – LostAvatar

+0

非常感謝! – caesar

相關問題