【发布时间】:2017-06-03 09:27:00
【问题描述】:
假设我写了下面的代码:
import os
import subprocess
for i in os.system('ls'):
print i
我收到以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'int' object is not iterable
当我尝试对 subprocess.Popen 做同样的事情时
for i in subprocess.Popen("ls" , shell=True).wait():
print i
我也有同样的问题。如果我只做 os.system('ls') 或 subprocess.Popen("ls" , shell=True).wait()
db.sqlite3 ip manage.py mysite
0
输出之后的额外 '0' 给出了问题。有什么办法摆脱它?
【问题讨论】:
-
0是进程的返回码。这意味着它运行没有问题。 -
您期望
system返回什么可以迭代?调用ls的结果输出发送到sys.stdout。 -
没关系,如何摆脱错误 TypeError: 'int' object is not iterable
-
如果你想列出目录,在python中做
os.iistdir返回一个你可以迭代的列表。 -
不要尝试使用进程返回码进行迭代
标签: python python-3.x subprocess os.system