在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
答
既然你有相同数量的频率的线和数据线,这段代码应该做的伎俩:
#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 ...
希望这会有所帮助!
答
谢谢,这正是我所需要的。
是否有一对一的映射,它保证有N行freq,然后是N行数据?如果是这样,你可以将文件加载到内存中 - 然后可以将它分为两部分并将它们一起压缩 –
是的,在我测量的95%中,将有201行频率和201行数据。我如何将文件加载到内存中,将其拆分并压缩回去?我能否使用“;”字符一起回拉列? –