【发布时间】:2019-12-19 16:19:02
【问题描述】:
我今天创建了一些 xlsx 文件。如何让 pandas 读取最新的并转换为 csv(同时保留文件名)?
【问题讨论】:
我今天创建了一些 xlsx 文件。如何让 pandas 读取最新的并转换为 csv(同时保留文件名)?
【问题讨论】:
用途:
#https://stackoverflow.com/a/39327156
list_of_files = glob.glob('/path/to/folder/*')
latest_file = max(list_of_files, key=os.path.getctime)
df = pd.read_excel(latest_file)
df.to_csv(os.path.basename(latest_file).split('.')[0] + '.csv', index=False)
【讨论】:
虽然已经提出了答案,但我想添加getmtime 和getctime 的使用。
ctime 会随着文件的所有权或权限的变化以及文件中的数据发生变化而变化。 mtime 仅在文件中的数据发生更改时更改。
>>> import pandas as pd
>>> import os
>>> import glob
>>> latest_file = max(glob.glob('/home/karn/*.csv'), key=os.path.getmtime)
>>> latest_file
'/home/karn/test_new_2.csv'
>>> df = pd.read_csv(latest_file)
>>> df
10 20 30
0 40 50 60
因此,如果您希望选择文件中具有最新数据更改的文件,那么我将使用 getmtime 而不是 getctime。
glob.glob 的限制是不匹配以 . 开头的文件。
【讨论】: