目的:读取txt文件的数据(NC程序),然后将pdf转为excel文件,将txt读取的数据放入excel中
目前进度:目前已经读取了txt文件的数据,也可以将想要的pdf文件转为excel,但是如何将txt提取的文件数据写入excel不会写了,不知道该用什么模块,该怎样链接两块代码
运行结果:可以单独运行读取txt文件数据,可以单独将pdf文件改写为excel文件,但是没法将txt的数据写入excel中
解答思路及思考的方法:自己尝试了在PDF程序后面再次进行读取excel文件,但是内容过长,效果不加
也尝试了在PDF转为excel之前将数据加入pdf中,但是失败了
想要的效果:想将txt读取的数据放入PDF转换的excel中
详细代码:
读取txt文件代码:
import re
f = open('gongxu1.nc','r')
something = f.readlines()
new = []
'''for x in something:
first = x.strip('\n')
second = first.split()
new.append(second)'''
T_checker = re.compile(r'T(\d)+')
Z_checker = re.compile(r'Z(-)?(\d)+(.)?(\d)*')
T_temp = 0
Z_temp = 0
result = []
for x in something:
T_get = T_checker.search(x)
if T_get != None:
T_temp = T_get.group()
Z_get = Z_checker.search(x)
if Z_get != None:
Z_temp = Z_get.group()
result.append([T_temp,Z_temp])
length = len(result)
def print_array(arr):
#use a breakpoint in the code line below to debug your script.
obj:dict = {} #暂时存储得空字典
for item in arr:
if not obj.get(item[0]): #从字典中找到key,如果没有,就赋值给空集里
obj[item[0]] = item[1]
elif float(obj.get(item[0])[1:]) > float(item[1][1:]): #从字典中取value,如果数值小就赋值给空集里
obj[item[0]] = item[1]
return [[x,y] for x,y in obj.items()]
if name == 'main':
final = print_array(result)
print(final)
读取PDF代码:
import pdfplumber
from openpyxl import Workbook
pdf_info =pdfplumber.open(r'tool.pdf')
meta_data = pdf_info.metadata # pdf的基础信息
page_con = len(pdf_info.pages) # 获取pdf的总页数
print('pdf文件的基础信息:\n', meta_data)
print('pdf共%s页' % page_con)
wb = Workbook() # 实例化一个工作簿对象
ws = wb.active # 获取第一个sheet
con = 0
try:
for page in pdf_info.pages:
for table in page.extract_tables():
for row in table:
row_list = [cell.replace('\n', ' ') if cell else '' for cell in row]
ws.append(row_list) # 写入数据
con += 1
print('分割线,第%s页' % con)
except Exception as e:
print('报错:', e)
finally:
wb.save('tool.xlsx')
print('写入完成!')
wb.close()
提取的excel数据示例:
[['T52', 'Z-15.'], ['T08', 'Z-1.8'], ['T53', 'Z-11.5']]