You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环实现同一目录下所有TDMS文件数据批量读取展示

批量读取并可视化指定目录下的所有TDMS文件

我在名为abc的文件夹中存储了多个TDMS文件(如file1.tdms、file2.tdms等),目前用下面的Python loader类的load函数读取单个TDMS文件并可视化,但每次运行都得手动修改文件名序号才能切换文件。现在想修改load函数,实现自动遍历abc目录,批量读取并展示每个文件的数据。

原代码:

class loader():
    def load(self, path):

        
        tdms_file = TdmsFile.read(path)
        df = tdms_file.as_dataframe()
        file_read = TdmsFile.read(path)
        data = file_read.groups()[0].channels()[0].data
        
        plt.suptitle('Timeseries data', fontsize='30')
        plt.xlabel('Timestamp', fontsize ='20')
        plt.ylabel('feature values', fontsize='20')
        plt.plot(df.iloc[:,0])
        plt.show()

修改后的实现代码

import os
import matplotlib.pyplot as plt
from nptdms import TdmsFile  # 假设使用nptdms库处理TDMS文件

class loader():
    def load(self, dir_path):
        # 遍历目标目录下所有TDMS文件(兼容大小写后缀)
        for filename in os.listdir(dir_path):
            if filename.lower().endswith('.tdms'):
                file_full_path = os.path.join(dir_path, filename)
                print(f"处理文件:{filename}")
                
                # 读取TDMS文件(优化:避免重复读取同一文件)
                tdms_file = TdmsFile.read(file_full_path)
                df = tdms_file.as_dataframe()
                data = tdms_file.groups()[0].channels()[0].data
                
                # 生成带文件名的独立可视化图表
                plt.figure(figsize=(10, 6))
                plt.suptitle(f'Timeseries Data - {filename}', fontsize=20)
                plt.xlabel('Timestamp', fontsize=15)
                plt.ylabel('Feature Values', fontsize=15)
                plt.plot(df.iloc[:, 0])
                plt.tight_layout()  # 自动调整布局,防止标签截断
                plt.show()

关键改动说明

  • 目录遍历逻辑:用os.listdir()遍历目标目录,通过后缀筛选仅处理TDMS文件,同时兼容.TDMS大写后缀的情况
  • 读取效率优化:移除原代码中重复读取同一文件的冗余操作,仅读取一次即可获取所有需要的数据
  • 可视化区分:将文件名添加到图表标题中,方便直观区分不同文件的可视化结果
  • 图表布局优化:每个文件创建独立画布,避免图表重叠;用plt.tight_layout()自动调整元素位置,防止标签被截断

使用示例

# 实例化loader类,传入abc文件夹的实际路径
data_loader = loader()
data_loader.load("./abc")  # 替换为你的abc文件夹绝对/相对路径

内容的提问来源于stack exchange,提问作者Aditya Bhandwalkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:10:58