#python #pandas #operating-system
Вопрос:
В настоящее время я нахожусь в каталоге со множеством разных папок. Эти папки называются по дате и времени «YYYY_MM_DD_HH-MM-SS-SSS».
Теперь мне нужно перебирать из папки в папку:
А) сохраняйте каждую дату и время из имен папок в непрерывном массиве.
Б) зайдите в эту папку, прочитайте файл .xlxs и сохраните данные в массиве
В) Выйдите из папки и перейдите в следующую папку.
К сожалению, у меня есть только одна идея для B, что-то вроде:
pd.read_excel(("{fname}/NAMEOFEXCELFILE.xlsx".format(fname = newpath)), skiprows = 1, header = None, usecols = [5])
У кого-нибудь есть какие-либо идеи по части «Перемещение из папки в папку», включая часть экономии времени?
В принципе, после запуска кода мне нужен массив со временем и массив, такой же длины, как и массив, со значениями из файлов Excel.
Ответ №1:
Вы можете использовать Path.iterdir
для перебора папок. Предполагая, что текущий рабочий каталог содержит все папки datetime, и они являются единственными, что там есть, вы можете перебирать каждую папку следующим образом:
from pathlib import Path
# ...
folder_names = []
spreadsheet_contents = []
current_directory = Path.cwd()
for folder in current_directory.iterdir():
folder_names.append(folder.name)
spreadsheet_path = folder / "spreadsheet.xlsx"
spreadsheet_contents.append(pd.read_excel(spreadsheet_path, ...))
Обратите внимание, что имена папок по-прежнему будут строками. Если вы хотите проанализировать фактические даты и время, вы можете использовать datetime.strptime
.
Комментарии:
1. Большое спасибо! У вас также есть идея для случая различных именованных файлов Excel?
Ответ №2:
Модуль glob может помочь вам перебирать папки и вложенные папки https://docs.python.org/3/library/glob.html