Добавить модификацию столбца метки времени файла при использовании glob - PullRequest
3 голосов
/ 15 мая 2019

У меня есть несколько файлов в папке, которые изменяются пользователями в разное время.Каждую неделю я собираю их все в один мастер-файл, но мне нужно отслеживать, когда файл был изменен в последний раз.Это ручной процесс, который я пытаюсь автоматизировать.

Я написал глобальный код, но, кажется, не могу добавить столбец, который бы указывал время модификации каждого файла в мастер-файле

all_data = pd.DataFrame()
for f in glob.glob("..\Python_Practice\Book*.xlsx"):
    df = pd.read_excel(f)
    all_data = all_data.append(df, ignore_index=True)
all_data.head()


all_data[time] = time.strftime('%m%d%H%M', os.path.gmtime('file')

Это на самом деле не работает и не может найти на форумах ничего, что могло бы сделать что-то подобное

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Я бы попытался использовать метку времени в момент обработки каждого файла. Ваш код может стать:

all_data = pd.DataFrame()
for f in glob.glob("..\Python_Practice\Book*.xlsx"):
    df = pd.read_excel(f)
    df['time'] = time.strftime('%m%d%H%M', os.path.gmtime('file')
    all_data = all_data.append(df, ignore_index=True)
all_data.head()
1 голос
/ 15 мая 2019

вы близки, но вам нужно перебрать ваши файлы и передать os.path.getmtime в список.затем вы можете передать их в индекс.

Следующее будет

Найти все .xlsx файлы объединить их в один список получить время последнего изменения Unix преобразовать время Unix вdatetime объединяет кадры данных в один и передает datetime в индекс.
    from datetime import datetime 
    allFiles = glob.glob('*.xlsx')
    dfs = [pd.read_excel(f) for f in allFiles]
    keys = [datetime.fromtimestamp(os.path.getmtime (f)).strftime('%Y-%m-%d %H:%M:%S') for f in allFiles]
    frame = pd.concat(dfs, keys=keys)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...