[英]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.