簡體   English   中英

使用os.system運行另一個python腳本

[英]Running another python script with os.system

我有老蟒蛇。 因此不能使用子流程。 我有兩個python腳本。 一個primary.py和另一個secondary.py。 在運行primary.py時,我需要運行secondary.py。

運行secondary.py的格式是“ python secondary.py參數”

os.system('python secondary.py Argument')...is giving error saying that can't open file 'Argument': [Errno 2] No such file or directory

給定您描述的代碼,此錯誤可能由於以下三個原因而出現:

  • python不在您的PATH ,或者
  • secondary.py不在當前工作目錄中。
  • Argument不在您當前的工作目錄中。

從您編輯的問題來看,這似乎是三個問題中的最后一個,這意味着該問題可能與system完全無關……但是讓我們看看如何解決這三個問題。

首先,您需要一個指向運行primary.py的相同python的路徑,這就是sys.executable的作用。

然后,您需要一個指向secondary.py的路徑。 不幸的是,對於這一點,無法保證(在Python 2.3中)工作正常……但是在許多POSIX系統上,在許多情況下, sys.argv\\[0\\]將是primary.py的絕對路徑,因此您可以只使用dirname並從os.path join ,將其轉換為secondary.py的絕對路徑。

然后,假設Argument位於腳本目錄中,請執行相同的操作:

my_dir = os.path.dirname(sys.argv[0])
os.system('%s %s %s' % (sys.executable, 
                        os.path.join(my_dir, 'secondary.py'),
                        os.path.join(my_dir, 'Argument')))

您擁有哪個python版本? 您可以顯示secondary.py的內容嗎? 對於較新的版本,它似乎可以正常工作:

ddzialak@ubuntu:$ cat f.py 
import os
os.system("python s.py Arg")

ddzialak@ubuntu:$ cat s.py

print "OK!!!"
ddzialak@ubuntu:$ python f.py
OK!!!
ddzialak@ubuntu:$ 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM