Как проанализировать несколько файлов .csv, имена которых зависят от меток времени в одном скрипте Python? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть несколько еженедельных файлов .csv, которые называются в зависимости от начальной и конечной даты и времени недели, например:

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

Я хочу проанализировать их с помощью одного скрипта Python, и моя идея заключалась в том, чтобы перебрать .csv в папке и затем запустить остальную часть кода.

Я знаю, что можно объединить больше .csv файлов в один, но мой компьютер не поддерживает так много, и меня интересуют результаты соответствующих периодов отдельно.

Есть ли способ использовать глобальную функцию / библиотеку, если имена очень разные?

1 Ответ

0 голосов
/ 06 сентября 2018

Предполагая, что вы используете 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()

В этом примере он находит все файлы CSV, начиная с File_, открывает их, отображает имя файла, а затем все строки из файла. Так, если, например, у вас был CSV-файл с именем File_2018-01-01_05-30-00_2018-01-08_02-00-00.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:
...