我有一个文本文件,我想只提取此文件中的某些行,我将其放在另一个文件中
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()
答案 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'添加到它打印的所有内容的末尾。