问候我有文件夹命名' 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)
请指导我。
答案 0 :(得分:0)
如果没有更多信息,我只能猜出你想要打印的内容。
如果您想要的输出首先是1_left然后是1_right,依此类推,就像它出现在您的文件夹中一样,原因是python以不同于操作系统的方式对文件进行排序。
据我所知,files
只是一个列表。因此,您可以使用sort
和自定义密钥自行对其进行排序,例如files.sort(key=lambda x: int(x.split("_")[0]))
。
这将按开头的数字对列表进行排序,字符串以外的数字按照您的预期排序(首先是1,然后是2,依此类推)。
答案 1 :(得分:0)
✓ @ vidit02100 ,问题非常有趣。我从您的代码中了解到,您只想打印 10k 目录中的图像文件名称。
在图片中,您没有评论您在问题代码中评论的行。
如果你要显示完整的代码并告诉 10k 目录中的图片数量,那么对我来说帮助你会好得多。
如果 10k 内有+10000张图片,您的代码可能会以相反的顺序打印图像。请检查并告知我们。
✓据我所知, jpg , jpeg & png 是最受欢迎的图片文件扩展名,以 g 结尾。
✓所以将所有这些扩展放在一个列表中,并使用另一个for循环迭代它并将代码放在其中。
如果我的建议不能满足您的需求,请发表评论。我会根据您提供的输入和输出更新我的答案。
✓这是您修改后的代码。
main_file = '10k'
file_formats = ["png", "jpg", "jpeg"]
for file_format in file_formats:
path = os.path.join(main_file, '*.' + file_format )
files = glob.glob(path)
for f1 in files:
fstr = str(f1)
print(fstr)