我制作了一个代码,用于读取文件夹中的一系列CSV文件。它读取我选择的文件夹中的所有CSV文件。CSV文件的格式如下:
A1.CSV,A2.CSV,A3.CSV,....,A10.CSV,A11.CSV,..... A24.CSV,B1.CSV,B2.CSV,......
等等。
代码读取文件,然后按列添加它们。但是,当它读取文件时,订单变为:A1> A10> A11> ...> A19> A2> A20> A21 ......
有没有办法让python以字母顺序读取文件,如:A1> A2> A3> ...> A10> A11> ...
我可以手动将零添加到单个数字(如A01),这是繁琐的,因为我有很多字母后面有单个数字的文件。
for files in os.listdir(full_path):
if os.path.isfile(os.path.join(full_path, files)):
df = pd.read_excel(files, 'Sheet1')[pkitems]
df[''] = np.nan
dfs.append(df)
data = pd.concat(dfs, axis=1)
解决办法:
使用内置list.sort两个键:
file_list = os.listdir(full_path)
file_list.sort(key=lambda x:(os.path.splitext(x)[0][0], int(os.path.splitext(x)[0][1:])))
print(file_list)
['A1.csv',
'A2.csv',
...
'A23.csv',
'A24.csv',
'B1.csv',
'B2.csv',
...
'B23.csv',
'B24.csv']








暂无数据