我有~200个短文本文件(50kb),它们都有类似的格式.我想在每个包含某个字符串的文件中找到一行,然后将该行加上接下来的三行(但不是文件中的其余行)写入另一个文本文件.我正在尝试自学python以便做到这一点,并编写了一个非常简单粗暴的小脚本来试试这个.我使用的是2.6.5版,并从Mac终端运行脚本:
#!/usr/bin/env python
f = open('Test.txt')
Lines=f.readlines()
searchquery = 'am\n'
i=0
while i < 500:
if Lines[i] == searchquery:
print Lines[i:i+3]
i = i+1
else:
i = i+1
f.close()
Run Code Online (Sandbox Code Playgroud)
这或多或少有效并将输出打印到屏幕上.但我想将行打印到一个新文件,所以我试过这样的事情:
f1 = open('Test.txt')
f2 = open('Output.txt', 'a')
Lines=f1.readlines()
searchquery = 'am\n'
i=0
while i < 500:
if Lines[i] == searchquery:
f2.write(Lines[i])
f2.write(Lines[i+1])
f2.write(Lines[i+2])
i = i+1
else:
i = i+1
f1.close()
f2.close()
Run Code Online (Sandbox Code Playgroud)
但是,没有任何内容写入文件.我也试过了
from __future__ import print_function
print(Lines[i], file='Output.txt')
Run Code Online (Sandbox Code Playgroud)
而且也无法让它发挥作用.如果有人能够解释我做错了什么或提出一些关于我应该尝试的建议,我将非常感激.此外,如果您有任何建议使搜索更好,我也会很感激.我一直在使用一个测试文件,其中我想要找到的字符串是该行上唯一的文本,但在我的真实文件中,我需要的字符串仍然在行的开头,但后面是一堆其他文本,所以我认为我现在设置的方式也不会真正起作用.
谢谢,对不起,如果这是一个超级基本的问题!
python ×1