我試圖解決與我的代碼的問題,在那裏我執行我的函數play()
,但我傳入--b
的參數是int
,我做錯了什麼?類型'int'的參數在我的函數中是不可迭代的
import argparse
from num2words import num2words
import subprocess
def play():
parser = argparse.ArgumentParser()
parser.add_argument("--b", default='99',type=str,help="B?")
args = parser.parse_args()
for iteration in reversed(range(args.b)):
print('Wee!')
play()
if __name__ == '__main__':
subprocess.call(['./file.py', '10'], shell=True)
我通過執行此:
>>> import sys; import subprocess;
>>> subprocess.call([sys.executable, 'file.py', '--b', 10])
Traceback (most recent call last):
File "<string>", line 1, in <module>
File ".\subprocess.py", line 480, in call
File ".\subprocess.py", line 633, in __init__
File ".\subprocess.py", line 801, in _execute_child
File ".\subprocess.py", line 541, in list2cmdline
TypeError: argument of type 'int' is not iterable
把'10'放在引號中:'「10」' – baldr
我想你必須把它作爲字符串傳遞。所以@baldr說,嘗試'subprocess.call([sys.executable,'file.py',' - b',str(10)])' –
@Memnon - 這給我一個錯誤:「TypeError: 'list'對象不可調用「 – Jshee