首页 > 解决方案 > 文件名与文件夹内的文件不匹配

问题描述

Greetings 我有一个名为“10k”的文件夹,其中包含命名1_left 1_right如下所示的图像。

在此处输入图像描述

我的 python 代码打印文件夹中的文件名:

main_file = '10k'
path = os.path.join(main_file,'*g')
files = glob.glob(path)


#l='10k\10_left.jpeg'
for f1 in files:
    #print(os.path.basename(f1))
    fstr=str(f1)
    print(fstr)

当我打印时输出很奇怪,它不是所需的名称输出: 在此处输入图像描述

请指导我。

标签: pythonpython-3.xglobpython-os

解决方案


如果没有更多信息,我只能猜测您想要打印什么。

如果您想要的输出是第一个 1_left 然后 1_right 等等,就像它出现在您的文件夹中一样,原因是 python 以与您的操作系统不同的方式对文件进行排序。

据我所知,files只是一个列表。因此,您可以使用sort自定义键自行排序,例如files.sort(key=lambda x: int(x.split("_")[0])). 这将按开头的数字对列表进行排序,并且字符串以外的数字按照您可能期望的方式进行排序(所以首先是 1,然后是 2,依此类推)。


推荐阅读