如果我在命令下运行,那么python返回了很好的结果..
result_aftermatch= subp.Popen('ls -lrt', stdout=subp.PIPE,stderr=subp.PIPE,shell=True)
但同样的方式我要求使用代码从文件greping行如下...
list_of_id=[23,34,56,77,88]
result_aftermatch= subp.Popen('egrep','list_of_IDs','/home/bimlesh/python/result.log', stdout=subp.PIPE,stderr=subp.PIPE,shell=True)
result_lines,result_err= result_aftermatch.communicate()
print result_lines
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了如下错误...
Traceback (most recent call last):
File "test.py", line 144, in <module>
result_aftermatch= subp.Popen('egrep','list_of_IDs','/home/bimlesh/python/result.log', stdout=subp.PIPE,stderr=subp.PIPE,shell=True)
File "/usr/lib/python2.6/subprocess.py", line 573, in __init__
raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer
Run Code Online (Sandbox Code Playgroud)
请帮忙.
问题是您将命令作为多个参数传递。您需要将它们作为列表或元组传递。
喜欢:
subp.Popen([ 'egrep','list_of_IDs','/home/bimlesh/python/result.log' ], stdout=subp.PIPE,stderr=subp.PIPE,shell=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |