2021年1月18日总结
在处理肌电信号数据的时候,采集出来的数据是txt格式的数据,带有空格,空行和许多没有用的数据,用Excel可以把这些数据处理成表格格式的并且删除空行,只选我们需要的数据列,但是采集的txt文件比较大,Excel处理的时间比较长,还容易把电脑卡死
于是我就向用Python来将txt文件中我们需要的数据采集出来并写入到Excel中,思路如下:
Python处理
1.删除txt文件中的空行,便于处理。
没删除空行的数据VS删除空行的数据


2.读取txt文件中的指定列并保存到Excel中。
代码如下:
import codecs
import openpyxl
"""
删除txt文件中的空行
7.txt中是含有空行的文件,test_0.txt是不含空行的文件
"""
with open('data/7.txt', 'r', encoding='utf-8') as fr, open('data/test_0.txt', 'w', encoding='utf-8') as fd:
for text in fr.readlines():
if text.split():
fd.write(text)
print('txt文件中的空行已被成功删除!')
"""读取txt文件中的指定列
并保存到xls中
"""
print('正在将txt文件中的内容写入Excel...')
f = codecs.open('data/test_0.txt', mode='r', encoding='utf-8') # 打开txt文件,以‘utf-8’编码读取
file = openpyxl.Workbook()
sheet = file.create_sheet('sheet')
line = f.readline() # 以行的形式进行读取文件
list1 = []
index = 1
while line:
a = line.split()
b = list(map(int,a[2:3])) # 这是选取需要读取的位数
c = list(map(int,a[6:7]))
sheet.cell(index,1,b[0])
sheet.cell(index,2,c[0])
# list1.append(b) # 将其添加在列表之中
line = f.readline()
index=index+1
f.close()
file.save('data/7.xlsx')
print('txt写入Excel成功!')
跑完之后就会在data目录下找到7.xlsx这个文件,打开后可能空白的,注意选择我们自己命名的sheet,就会发现数据了,用这个代码执行的话,十二万行的数据不到一分钟就可以完成了。
如果用Excel软件的办法,14台电脑执行了接近一个小时才完成的。
PS:Excel软件的处理办法:
1.点数据选项卡,点击来自文本,
2. CTRL+G选择定位空行,删除空行就可以了,比较耗费时间,定位空行也是比较费时间的。




浙公网安备 33010602011771号