说我已经写了波纹管:
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
当我尝试使用subproces.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"给出了问题。有什么方法可以摆脱它?
os.system()
返回返回值(如果成功的话,0(。
出于明显的原因,您无法在整数上迭代,因此您必须获取数据。
您想获取输出的字符串,解析并迭代其上方。subprocess.check_output()
功能应该是您的路。
如果您想要stdout:
proc = subprocess.Popen("ls", shell=True, stdout=subprocess.PIPE)
for line in proc.stdout:
print(line)