在文本文件中提取特定行

时间:2016-04-11 15:17:01

标签: python file csv text

  

我有一个文本文件,我想只提取此文件中的某些行,我将其放在另一个文件中

for line in cFicIn:

fieldwidths = (22, 22, 22)  # negative widths represent ignored padding fields
parse = make_parser(fieldwidths)
fields = parse(line)

我在文本文件中有三列。 fields [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()

1 个答案:

答案 0 :(得分:0)

创建一个名为 should_process_line 的bool变量,并在此变量为True时处理行if。在遇到“频率”和“相位”后将其设置为True,在遇到“峰值插值”后将其设置为False。 虽然我们正在使用它,但您的新一代可以重写为

newline = str(a) + ';'.join([x.strip() for x in fields])

问题的方式,你的换行变量不是一个str,而是一个元组,它的唯一元素就是你想要的字符串。另外,如果你使用

,最后添加'\ n'是不必要的
print(newline, file=csv_file)

print将'\ n'添加到它打印的所有内容的末尾。