Python 提取文本文件中的特定行

Python 提取文本文件中的特定行,python,file,csv,text,Python,File,Csv,Text,我有一个文本文件,我只想提取这个文件中的某些行,我把它放在另一个文件中 我在文本文件中有三列。字段[0]为列0 Frequency [Hz] Peak amplitude Phase [degrees] 117.131422636205 1528954.28753915 -54.0642640720085 234.26284527241 1051596.71706853 -6.8190622

我有一个文本文件,我只想提取这个文件中的某些行,我把它放在另一个文件中

我在文本文件中有三列。字段[0]为列0

Frequency [Hz]           Peak amplitude           Phase [degrees]
117.131422636205         1528954.28753915         -54.0642640720085
234.26284527241          1051596.71706853         -6.8190622364283
351.302901744313         456787.344479019         47.6494383764102
Peak interpolation: Numeric
但是我想恢复文件中两行之间的数据,因为我知道有几行。行频率和峰值插值

if 'Frequency' and 'Phase' in line   :


       newline=(str(a)+';'+fields[0].strip()+';'+fields[1].strip()+';'+fields[2].strip()+';'+'\n')
       newline.replace(" ","")
       a=a+1
       print(newline)



       csv_file.write(newline)

       csv_file.close()

如果此变量为True,则创建一个名为like should_process_line和process line的bool变量。遇到“频率”和“相位”后将其设置为True,遇到“峰值插值”后将其设置为False。 当我们这样做的时候,你的新行一代可能会被改写为

newline = str(a) + ';'.join([x.strip() for x in fields])
在问题中,您的换行符变量不是str,而是一个元组,它的唯一元素是您想要的字符串。此外,如果您使用

print(newline, file=csv_file)

“打印”会将“\n”添加到它打印的所有内容的末尾。

谢谢。您可以对infle中的行说
:if line.strip()=“开始”:copy=True elif line.strip()=“结束”:copy=False elif copy:outfile.write(line)
不是elif,在最后一种情况下应该是if。
print(newline, file=csv_file)