使用 glob.glob 设置顺序

gus*_*a10 4 python sorting glob function

我想在脚本打开文件时设置自己的顺序,但glob.glob打开文件的默认顺序是随机的。

\n

我有以下文件:\'fish.txt\', \'expo.txt\', \'random.txt\'.

\n

这是我所有文件的一个小规模示例,我想设置我的顺序。

\n

我已经编写了打开文件的正常方法glob.glob

\n
    #! /usr/bin/env python\n    import sys, os, glob\n    mylist = [\'fish.txt\',\'random.txt\', \'expo.txt\']\n    def sorter(item):\n        for item in mylist:\n            return item\n\n    for file in sorted(glob.glob(\'*.txt\'), key = sorter):\n         print(file)\n
Run Code Online (Sandbox Code Playgroud)\n

我想要的\xe2\x80\x8b 输出是:

\n
fish.txt\nrandom.txt\nexpo.txt\n
Run Code Online (Sandbox Code Playgroud)\n

use*_*134 9

您可以sorted(list)在迭代文件名之前对文件名进行排序:

#!/usr/bin/env python
import sys, os, glob

def sorter(item):
    """Get an item from the list (one-by-one) and return a score for that item."""
    return item[1]

files = sorted(glob.glob('*.txt'), key=sorter)
for file in files:
     print(file)
Run Code Online (Sandbox Code Playgroud)

在这里,它按文件名中的第二个字母排序。将功能更改sorter()为您想要的文件列表排序方式。

要按字母顺序排序,您不需要该部分,因为这是字符串列表key=sorter的默认行为。sorted()那么它就会变成:

files = sorted(glob.glob('*.txt'))
for file in files:
     print(file)
Run Code Online (Sandbox Code Playgroud)