小编Loc*_*ust的帖子

使用 Golang 对文件名中带有数字的字符串进行排序

我正在尝试将一些旧的 python 代码转换为 Go lang。但是我在对文件夹中的文件进行排序时遇到了困难。由于文件始终AMA1.txtAMA2.txt等等。在Python源代码我这样做:

files=[]
for file in os.listdir(someDir):

    if file.endswith(".txt"):
     files.append(file) 

convert = lambda text: int(text) if text.isdigit() else text 
alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)',key) ]

files.sort( key=alphanum_key )

for i in files:
    print (i)
Run Code Online (Sandbox Code Playgroud)

我到目前为止,但缺少排序:

func main() {
    dirname := "someDir"
    d, err := os.Open(dirname)

    if err != nil {
        fmt.Println(err)
    }

    defer d.Close()

    fi, err := d.Readdir(-1)

    if err != nil {
        fmt.Println(err)
    }

    for _, fi …
Run Code Online (Sandbox Code Playgroud)

sorting string numbers go

5
推荐指数
2
解决办法
1773
查看次数

标签 统计

go ×1

numbers ×1

sorting ×1

string ×1