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选择定位空行,删除空行就可以了,比较耗费时间,定位空行也是比较费时间的。

 

posted @ 2021-01-18 15:14  Geek_xu  阅读(188)  评论(0)    收藏  举报