首页 > 解决方案 > 如何使用现有的 python 脚本处理多个文件

问题描述

我有超过 100 个 .cwa 文件(原始加速度计数据)并且有一个 .py 程序来处理 .cwa 数据并生成一个 .csv 文件。我如何在 python 中编写一个脚本,该脚本可以使用我的 .py 处理所有 .cwa 文件,而无需将文件名单独插入命令行。

我是编程新手,我看过 glob.glob 和 os。walk 但不明白如何使用这些处理多个文件。我想一次读取 1 个 .cwa 文件,使用我的 .py 处理它,然后移动到下一个 .cwa 直到所有内容都被读取并且有相应数量的 csv 文件作为输出。我不想将数据合并到一个文件中。

标签: python

解决方案


您可以使用 shell 脚本(这里是 Linux 的 bash 示例)列出目录中的文件并为每个文件调用命令:

find /path/to/cwa/files/ -type f -name "*.cwa" -exec /path/to/script.py {} \;

此示例假定 script.py 采用单个参数,即 CWA 文件路径,例如script.py /my/cwa/file.cwa

如果你想坚持使用 Python,for 循环os.listdir可能是最简单的方法。假设您的 CWA 处理代码在process_cwa()函数中:

import os

CWA_DIR = '/path/to/cwa/files'

def process_cwa(path):
    # process CWA file
    pass

# process CWA files from CWA_DIR on disk
for file in os.listdir(CWA_DIR):
    if file.endswith(".cwa"):
        path = os.path.join(CWA_DIR, file)
        process_cwa(path)

推荐阅读