首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python的glob.glob是如何排序的?

Python的glob.glob是如何排序的?
EN

Stack Overflow用户
提问于 2011-07-21 16:59:22
回答 10查看 173.3K关注 0票数 260

我已经编写了以下Python代码:

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os, glob

path = '/home/my/path'
for infile in glob.glob( os.path.join(path, '*.png') ):
    print infile

现在我明白了:

代码语言:javascript
复制
/home/my/path/output0352.png
/home/my/path/output0005.png
/home/my/path/output0137.png
/home/my/path/output0202.png
/home/my/path/output0023.png
/home/my/path/output0048.png
/home/my/path/output0069.png
/home/my/path/output0246.png
/home/my/path/output0071.png
/home/my/path/output0402.png
/home/my/path/output0230.png
/home/my/path/output0182.png
/home/my/path/output0121.png
/home/my/path/output0104.png
/home/my/path/output0219.png
/home/my/path/output0226.png
/home/my/path/output0215.png
/home/my/path/output0266.png
/home/my/path/output0347.png
/home/my/path/output0295.png
/home/my/path/output0131.png
/home/my/path/output0208.png
/home/my/path/output0194.png

它是以哪种方式排序的?

澄清一下:我对订购不感兴趣--我知道sorted。我想知道它默认的顺序是什么。

它可能会帮助您获得我的ls -l输出:

代码语言:javascript
复制
-rw-r--r-- 1 moose moose 627669 2011-07-17 17:26 output0005.png
-rw-r--r-- 1 moose moose 596417 2011-07-17 17:26 output0023.png
-rw-r--r-- 1 moose moose 543639 2011-07-17 17:26 output0048.png
-rw-r--r-- 1 moose moose 535384 2011-07-17 17:27 output0069.png
-rw-r--r-- 1 moose moose 543216 2011-07-17 17:27 output0071.png
-rw-r--r-- 1 moose moose 561776 2011-07-17 17:27 output0104.png
-rw-r--r-- 1 moose moose 501865 2011-07-17 17:27 output0121.png
-rw-r--r-- 1 moose moose 547144 2011-07-17 17:27 output0131.png
-rw-r--r-- 1 moose moose 530596 2011-07-17 17:27 output0137.png
-rw-r--r-- 1 moose moose 532567 2011-07-17 17:27 output0182.png
-rw-r--r-- 1 moose moose 553562 2011-07-17 17:27 output0194.png
-rw-r--r-- 1 moose moose 574065 2011-07-17 17:27 output0202.png
-rw-r--r-- 1 moose moose 552197 2011-07-17 17:27 output0208.png
-rw-r--r-- 1 moose moose 559809 2011-07-17 17:27 output0215.png
-rw-r--r-- 1 moose moose 549046 2011-07-17 17:27 output0219.png
-rw-r--r-- 1 moose moose 566661 2011-07-17 17:27 output0226.png
-rw-r--r-- 1 moose moose 561678 2011-07-17 17:27 output0246.png
-rw-r--r-- 1 moose moose 525550 2011-07-17 17:27 output0266.png
-rw-r--r-- 1 moose moose 565715 2011-07-17 17:27 output0295.png
-rw-r--r-- 1 moose moose 568381 2011-07-17 17:28 output0347.png
-rw-r--r-- 1 moose moose 532768 2011-07-17 17:28 output0352.png
-rw-r--r-- 1 moose moose 535818 2011-07-17 17:28 output0402.png

它不按文件名或大小排序。

其他链接:globls

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-07-21 17:02:40

它可能根本不排序,并使用条目在文件系统中出现的顺序,即使用ls -U时获得的顺序。(至少在我的机器上,这会产生与列出glob匹配相同的顺序)。

票数 139
EN

Stack Overflow用户

发布于 2011-07-21 18:07:26

顺序是任意的,但您可以自己对它们进行排序

如果要按名称排序:

代码语言:javascript
复制
sorted(glob.glob('*.png'))

按修改时间排序:

代码语言:javascript
复制
import os
sorted(glob.glob('*.png'), key=os.path.getmtime)

按大小排序:

代码语言:javascript
复制
import os
sorted(glob.glob('*.png'), key=os.path.getsize)

等。

票数 517
EN

Stack Overflow用户

发布于 2018-12-10 00:09:47

顺序是任意的,但有几种方法可以对它们进行排序。其中之一如下:

代码语言:javascript
复制
#First, get the files:
import glob
import re
files =glob.glob1(img_folder,'*'+output_image_format)
# if you want sort files according to the digits included in the filename, you can do as following:
files = sorted(files, key=lambda x:float(re.findall("(\d+)",x)[0]))
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6773584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档