个人用Django开发的博客已上线,欢迎访问:https://www.zhibibin.com
Labview的TMDS格式文件在很多偏硬件相关的工作中经常出现,有时候面临将TDMS转成Excel通用格式的情况,正常来讲Excel只要装有TDMS插件读取是没有问题的,然而面对大量TDMS文件的时候,手动一个个将TDMS文件转成Excel文件显然很浪费时间,以下介绍使用Python配合pandas,xlsxwriter将TMDS文件批量转成Excel文件的方法:
前期需要安装以下库:
nptdms
pandas
xlsxwriter
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import os
import sys
from nptdms import TdmsFile
import pandas as pd
class Application(QWidget):
def __init__(self):
super().__init__()
self.title = 'TDMS_to_Excel'
## self.setGeometry(100,100,200,200)
self.initGui()
def initGui(self):
layout = QVBoxLayout()
self.Button = QPushButton('Run', self)
self.Button.clicked.connect(self.on_click)
layout.addWidget(self.Button)
self.setLayout(layout)
@pyqtSlot()
def on_click(self):
files = os.listdir('tdms/')
for file in files:
print(file)
#load the tdms file
tdms_file = TdmsFile(f'tdms/{file}')
#split all the tdms grouped channels to a separate dataframe
#tdms_file.as_dataframe()
for group in tdms_file.groups():
grp1_data = tdms_file.object('HEX').as_dataframe()
grp2_data = tdms_file.object('DEC').as_dataframe()
excel_file = file.replace('tdms', 'xlsx')
print(excel_file)
writer = pd.ExcelWriter(f"excel/{excel_file}", engine='xlsxwriter')
grp1_data.to_excel(writer, sheet_name='HEX')
grp2_data.to_excel(writer, sheet_name='DEC')
# Close the Pandas Excel writer and output the Excel file.
writer.save()
print("complete")
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Application()
ex.show()
sys.exit(app.exec_())