如何解决写入文件 Python 2.6.4 os.system 后调用 grep
我正在尝试从 text.txt
读取,将某些行写入 temp.txt
,然后在 os.system
上使用 grep
call temp.txt
运行程序后,temp.txt
被创建,我可以在终端中调用相同的 grep
命令以获得我想要的结果,这让我认为这是一个异步问题
我使用的是 Python 2.6.4
import os
#opens new file to write to
temp = open("temp.txt","w+")
boolStart = False
with open("text.txt","r") as text:
for line in text:
if("GREEN" in line):
boolStart = True
elif("YELLOW" in line):
boolStart = False
if(boolStart):
temp.write(line)
os.system("grep -e 'Ace: ' -e 'Spade' {0}".format("temp.txt"))
即使我通过管道传输到新文件,我也不会从运行 python script.py
中得到任何回报
问题:为什么我不能在同一个程序中编写的文件上调用 grep
对于上下文,这是 text.txt
******************************
*************RED**************
******************************
Ace: John
Ace: Mike
Spade: Nick
Spade: Pete
******************************
***********GREEN**************
******************************
Ace: Emily
Ace: Anna
Spade: Krista
Spade: Maddie
******************************
*************YELLOW***********
******************************
Ace: Nicole
Ace: Scott
Ace: Zac
Ace: Phil
这是temp.txt
我试图调用grep
的文件
***********GREEN**************
******************************
Ace: Emily
Ace: Anna
Spade: Krista
Spade: Maddie
******************************
解决方法
问题是您忘记.close()
该文件,这可能会留下尚未写入磁盘的缓冲数据。
但是,不需要使用 grep
或将数据写入临时文件。
for line in text:
# ...
if BoolStart:
if 'Ace:' in line or 'Spade:' in line:
print(line)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。