如何在单个 Python 脚本中分析名称取决于时间戳的多个 .csv 文件?

How to analyze multiple .csv files whose names depend on timestamps in a single Python script?

我有一些每周的 .csv 文件,这些文件根据一周的开始和结束日期和时间命名,例如:

File_2018-01-01_05-30-00_2018-01-08_02-00-00

我想使用单个 Python 脚本分析它们,我的想法是遍历文件夹中的 .csv,然后 运行 其余代码。

我知道可以将多个 .csv 文件连接成一个文件,但我的电脑不支持这么多,我对各自时期的结果分别感兴趣。

如果名称如此不同,是否有任何使用 glob function/library 的方法?

假设您正在使用 Python 3.x,您可以使用 glob.glob() 来迭代所有合适的文件名,如下所示:

import glob
import csv

for filename in glob.glob("File_*.csv"):
    print("Processing '{}'".format(filename))

    with open(filename, newline='') as f_input:
        csv_input = csv.reader(f_input)

        for row in csv_input:
            print(row)

    print()

在此示例中,它找到所有以 File_ 开头的 CSV 文件,打开它们,显示文件名,然后显示文件中的所有行。因此,例如,如果您有一个名为 File_2018-01-01_05-30-00_2018-01-08_02-00-00.csv 的 CSV 文件,其中包含:

col1,col2
a,b
c,d

脚本将显示:

Processing 'File_2018-01-01_05-30-00_2018-01-08_02-00-00.csv'
['col1', 'col2']
['a', 'b']
['c', 'd']    

然后将对同一文件夹中的任何其他匹配文件名重复此操作。

如果您使用 Python 2.x,您需要修改此行:

with open(filename, 'rb') as f_input: