在写入文件python2.6.4 os.system后调用grep

4uqofj5v  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(358)

我正试着从我的书里读 text.txt ,将某些行写入 temp.txt ,然后使用 os.system 呼叫 grep 在…上 temp.txt 在我运行程序之后, temp.txt 创建,我可以调用相同的 grep 命令以获得所需的结果,这使我认为这是一个异步问题
我正在使用python 2.6.4

  1. import os
  2. # opens new file to write to
  3. temp = open("temp.txt", "w+")
  4. boolStart = False
  5. with open("text.txt", "r") as text:
  6. for line in text:
  7. if("GREEN" in line):
  8. boolStart = True
  9. elif("YELLOW" in line):
  10. boolStart = False
  11. if(boolStart):
  12. temp.write(line)
  13. 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

  1. 这是 `temp.txt` 我要打电话给的文件 `grep` 在…上

GREEN***


Ace: Emily
Ace: Anna
Spade: Krista
Spade: Maddie


brtdzjyr

brtdzjyr1#

问题是你忘了 .close() 该文件可能会留下尚未写入磁盘的缓冲数据。
但是,没有必要使用 grep 或者将数据写入临时文件。

  1. for line in text:
  2. # ...
  3. if BoolStart:
  4. if 'Ace:' in line or 'Spade:' in line:
  5. print(line)

相关问题