【脚本】将txt文件中的数据提取到excel

学习内容 将txt文件中的数据提取到excel

#!/usr/bin/python
# -*- coding:UTF-8 -*-

import xlwt


f = open('record.txt')  # 打开文件
lines = f.readlines()  # 按行读取文件

# 第0行,第3行,第6行 有时间及前摄频率
# 第1行,第4行,有后摄频率


# 第0行的  0:19 位是时间
# 40:46 前摄频率
# 41:47 后摄频率

# 将时间提取到数组
time = []

time_n = 0
while time_n <= len(lines)-1:
    time.append(lines[time_n][0:19])
    time_n = time_n + 3

# 将前摄频率提取到数组
Hz_Pointcloud1 = []

Pointcloud1_n = 0
while Pointcloud1_n <= len(lines)-1:
    Hz_Pointcloud1.append(lines[Pointcloud1_n][40:46])
    Pointcloud1_n = Pointcloud1_n +3

# 将后摄频率提取到数组
Hz_Pointcloud2 = []

Pointcloud2_n = 1
while Pointcloud2_n <= len(lines)-1:
    Hz_Pointcloud2.append(lines[Pointcloud2_n][41:47])
    Pointcloud2_n = Pointcloud2_n +3

#将数据记录写到excel

workbook = xlwt.Workbook(encoding='utf-8')  # 创建一个excel
worksheet = workbook.add_sheet('Hz Record')

worksheet.write(0, 0, label='序号')
worksheet.write(0, 1, label='时间')
worksheet.write(0, 2, label='前摄频率')
worksheet.write(0, 3, label='后摄频率')

n = 0
while n < len(time):
    worksheet.write(n + 1, 0, n + 1)
    worksheet.write(n + 1, 1, time[n])
    worksheet.write(n + 1, 2, Hz_Pointcloud1[n])
    worksheet.write(n + 1, 3, Hz_Pointcloud2[n])
    n = n + 1

workbook.save('Record_Hz.xls')

问题记录

问题一:在pytharm 运行过程中,提示 xlwt 模块未安装
解决办法:
代码中 python解释器的位置为 /usr/bin/python,而文件夹位置是 ~/ROS_Python/venv ,而实际xlwt模块的安装位置在文件夹位置,所以pycharm并没有找到。 修改解释器位置,或者重新安装即可

下

2021/02/24 第二版

# -*- coding:UTF-8 -*-
'''
Date: 2021/2/23
变动说明:用函数来处理频率行,参数参数包括 行号 循环数 以及保存的 集合名称

'''

import xlwt


f = open('record.txt')  # 打开文件
lines = f.readlines()  # 按行读取文件

#记录时间
time = []

time_n = 0
while time_n <= len(lines)-1:
    time.append(lines[time_n][0:19])
    time_n = time_n + 10  #记得修改循环数

# 定义需要的数据集合名
Hz_Pointcloud1 = []
Hz_Pointcloud2 = []
Hz_Pointcloud3 = []
Hz_Scan = []
Hz_Top = []

# 将频率提取到对应数组
def extract_data(num1, num2, Hz_Name=[]):   # 三个参数分别为(行数,循环数,集合名称)
    line_num = num1
    cycle_number = num2
    while line_num <= len(lines) - 1:
        Hz_Name.append(lines[line_num].split(':')[-1].split('\n')[0])  # 提取每行最后一段,及频率
        line_num = line_num + cycle_number
    return Hz_Name

extract_data(0, 10, Hz_Pointcloud1)
extract_data(2, 10, Hz_Pointcloud2)
extract_data(4, 10, Hz_Pointcloud3)
extract_data(6, 10, Hz_Scan)
extract_data(8, 10, Hz_Top)

# 将数据记录写到excel

workbook = xlwt.Workbook(encoding='utf-8')  # 创建一个excel
worksheet = workbook.add_sheet('Hz Record')

worksheet.write(0, 0, label='序号')
worksheet.write(0, 1, label='时间')
worksheet.write(0, 2, label='前摄频率')
worksheet.write(0, 3, label='后摄频率')
worksheet.write(0, 4, label='斜摄频率')
worksheet.write(0, 5, label='激光频率')
worksheet.write(0, 6, label='Top频率')

n = 0
while n < len(time) :
    worksheet.write(n + 1, 0, n + 1)
    worksheet.write(n + 1, 1, time[n])
    worksheet.write(n + 1, 2, Hz_Pointcloud1[n])
    worksheet.write(n + 1, 3, Hz_Pointcloud2[n])
    worksheet.write(n + 1, 4, Hz_Pointcloud3[n])
    worksheet.write(n + 1, 5, Hz_Scan[n])
    worksheet.write(n + 1, 6, Hz_Top[n])
    n = n + 1

workbook.save('Record_Hz.xls')
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值