尝试使用glob从目录和子目录中进行排序

2024-05-16 05:36:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试读取目录及其子目录中的csv文件,以便从中获取数据,以便更好地将其组织到excel文件中。我可以做到这一点,但我不能让它排序的基础上的文件夹,我标记的距离。(2米、3米、5米、10米和15米)

我的代码:

import glob
import os
for cow in sorted(glob.glob(r'C:\Users\v-denhe\Documents\Custom_Target\**\*cypx.csv', recursive=True)):
    print(cow)

实际结果:

C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\10m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\15m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\2m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\3m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\5m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\10m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\15m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\2m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\3m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\5m\Results\SFR_cypx.csv

预期结果:

C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\2m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\3m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\5m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\10m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-10\15m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\2m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\3m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\5m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\10m\Results\SFR_cypx.csv
C:\Users\v-denhe\Documents\Custom_Target\PreDV-11\15m\Results\SFR_cypx.csv

Tags: 文件csvimport目录targetcustomusersresults
1条回答
网友
1楼 · 发布于 2024-05-16 05:36:49

使用键,在目录分隔符上拆分,选择第6个元素,从中去掉“m”并设置反向排序:

import glob
import os
for cow in sorted(glob.glob(r'C:\Users\v-denhe\Documents\Custom_Target\**\*cypx.csv', recursive=True), key=lambda x: x.split("\\")[6].strip("m"), reverse=True)):
    print(cow)

相关问题 更多 >