Python子进程命令lin

2024-06-30 05:57:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我很困惑。所以我尝试使用我的程序program10.py,它使用另一个程序,例如other_program

所以我可以这样运行:

python3 program10.py other_program

other_program接受一个int参数 这是我的program10.py代码:

^{2}$

当然,我得到了一个很大的错误:

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完全错了,因为我不明白,其他的问题和Python文档都帮不了我。如果有人能告诉我它与我的计划有什么关系,那将意味着很多。在


Tags: inpy程序libusrlineargscall
2条回答

“TypeError:'int'object is not iterable”一行告诉您,函数需要iterable,而不是整数。尝试传递字符串或字符串列表。在

您应该给出您试图在subprocess.call()中运行的程序的名称。错误说明int不可编辑。iterable是像字符串、列表或元组这样的对象。它们是一个“包含”多个项目的对象,可以一次返回一个项目。subprocess.call()通常需要一个包含命令和任何要运行的参数的列表。例如:

subprocess.call(['other_program', str(n)])

但这只会返回程序的返回码。如果需要程序创建的任何输出,则需要使用不同的函数,如subprocess.check_output()

相关问题 更多 >