写入文件后调用 grep Python 2.6.4 os.system
Calling grep after writing to file Python 2.6.4 os.system
我正在尝试从 text.txt
读取,将某些行写入 temp.txt
,然后使用 os.system
在 temp.txt
上调用 grep
在我 运行 程序之后, 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"))
我从 运行ning 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)
我正在尝试从 text.txt
读取,将某些行写入 temp.txt
,然后使用 os.system
在 temp.txt
上调用 grep
在我 运行 程序之后, 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"))
我从 运行ning 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)