我用subprocess从Linux中的CAT管道中读取:stdout=subprocess.PIPE
所以有些行有坏的EOL,这是一个巨大的文件,我想跳过这些行,去下一行。如何在Python中实现这一点?在
PS:我总是得到:
^{pr2}$
似乎有些套接字在写入该文件时停止了,因为我在该文件的末尾看到了非常大的空间。不想修它,想跳过它
这是我的代码:import sys,os
import subprocess
import traceback
import re
import ast
try :
cat = subprocess.Popen(["hadoop", "dfs", "-cat", "PATH TO FILE"], stdout=subprocess.PIPE)
for data in cat.stdout:
data = re.sub(' +',' ',data)
msg= ast.literal_eval(data)
if msg['some_string'] == 'some_string' :
print msg['status']
else :
continue
except :
print traceback.format_exc()
pass
exit()
所以程序退出前的输出:
很多空位。。。在^
SyntaxError:扫描字符串文本时的EOL