我试图用Python解析一个文件,使用grep,但它总是停在同一行,我能够理解为什么。我试过三种不同的方法:
process = os.popen("grep -A1 "+name+" "+new_hairpins+" | grep -oE '.{0,6}"+seq+".{0,6}'")
results = process.readlines()
process.close()
那么
process = subprocess.Popen("grep -A1 "+name+" "+new_hairpins+" | grep -oE '.{0,6}"+seq+".{0,6}'",stdout=PIPE, stderr=PIPE, shell=True)
process.wait()
process_result = process.communicate()
results = filter(None, process_result[0].split("\n"))
通过临时文件
os.system("grep -A1 "+name+" "+new_hairpins+" | grep -oE '.{0,6}"+seq+".{0,6}' > tmp.txt")
with open("tmp.txt","r") as f :
results = f.readlines()
但是脚本总是在同一行失败。 我直接在bash中手动尝试了这一行,它成功了。。。。!你知道吗
那么这可能是grep的内存问题吗?我该如何解决这个问题呢? 谢谢!你知道吗
我终于发现了问题:是我的错!你知道吗
我意识到我在grep中使用的文件new_hairpins和我之前在代码中生成的文件不是用.close()关闭的。。。。你知道吗
当它在1879年的第一行工作时,我不认为问题可能来自这个文件。。。你知道吗
不管怎样,谢谢你们的帮助!你知道吗
您需要引用命令行参数,因为两者之间有空格:
否则,
name
,new_hairpins
将被视为独立的参数。你知道吗相关问题 更多 >
编程相关推荐