我很困惑。所以我想用我的程序program10.py
它使用其他程序,例如other_program
Python子進程命令行錯誤
所以我可能會像這樣運行:
python3 program10.py other_program
的other_program
接受一個int參數 這裏是我的program10.py
代碼:
import time
import subprocess
n = 2**10
myList = []
while n <= 2**15:
before = time.process_time()
subprocess.call(n)
after = time.process_time()
print(n, after-before)
myList.append(after-before)
n *= 2
print(myList)
當然,我得到這個大錯誤:
Traceback (most recent call last):
File "program10.py", line 7, in <module>
subprocess.call(n)
File "/usr/lib/python3.5/subprocess.py", line 557, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1440, in _execute_child
args = list(args)
TypeError: 'int' object is not iterable
我毫不懷疑我使用subprocess.call是完全錯誤的,因爲我不明白這一點,也沒有其他SO問題或Python文檔幫助我解決問題。如果任何人都可以告訴我它與我的程序有什麼關係,那意味着很多。
第一次通過循環,嘗試執行'subprocess.call(2 ** 10)' 。第二次是'subprocess.call(2 ** 11)'。 Python期望的是要執行的程序的*名稱*也許是'sys.argv [1]'傳遞給你的程序的命令行參數... – jasonharper