热线电话:13121318867

登录
2019-02-18 阅读量: 914
如何使python的read_csv以字母数字顺序读取文件

我制作了一个代码,用于读取文件夹中的一系列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']

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子