在Python中的txt文件中拆分列

问题描述:

我是一名Python初学者。我用Python 2.7.11编写了一个小脚本来从安捷伦设备获取数据,但格式并不理想。 到目前为止,我已成功地格式化我的数据作为一个txt文件如下:在Python中的txt文件中拆分列

FREQ1

频率2

...

freq201

数据1

DATA2

...

data201

,我想格式化为遵循,这样我就可以easisly打开使用Excel的txt文件:

FREQ1; data1

freq2; data2

...; ...

freq201; data201

你知道任何简单的方法来实现吗?

在此先感谢

CL

+0

是否有一对一的映射,它保证有N行freq,然后是N行数据?如果是这样,你可以将文件加载到内存中 - 然后可以将它分为两​​部分并将它们一起压缩 –

+0

是的,在我测量的95%中,将有201行频率和201行数据。我如何将文件加载到内存中,将其拆分并压缩回去?我能否使用“;”字符一起回拉列? –

既然你有相同数量的频率的线和数据线,这段代码应该做的伎俩:

#imports OrderedDict to have an Ordered dictionary 
from collections import OrderedDict 

#opens files 
my_file = open('freq.txt','r') 
my_new_file = open("new.txt",'w') 

#saves lines of file as a list, with each line being one item in the list 
lines_list = my_file.readlines() 

#creates empty dictionary to fill with data 
freq_data = OrderedDict() 

#iterates through lines and adds to dictionary, with freq as key and data as value 
for line in range(len(lines_list)/2): 
    freq_data[lines_list[line]] = lines_list[line+10] 
    keys = freq_data.keys() 

#writes to your new file 
for i in keys: 
    my_new_file.write(i.strip() + ' ; ' + freq_data[i]) 

#closes both files 
my_file.close() 
my_new_file.close() 

从本质上讲这是什么代码是打开文件,将每个freq连接到相应的数据值,然后将其写入新文件。您可以更改行

freq_data[lines_list[line]] = lines_list[line+10] 

到行数据已经除以二的任何数字,所以对你来说会是

freq_data[lines_list[line]] = lines_list[line+201] 

这将打开文本文件看起来像:

FREQ1频率2 FREQ3 ...数据1数据2数据3

... 分成

freq1; data1

freq2; data2

freq3; data3 ...

希望这会有所帮助!

谢谢,这正是我所需要的。