Python按文件名中的数字排序列表

Python按文件名中的数字排序列表,python,Python,我已经下载了一堆文件,我正在尝试获取最近下载的版本,以便进行分析。显然,这是基于文本而不是数字的排序,因此我遇到了文件30位于文件4之前的问题。每次(您正常复制的下载)数字都在()之内。我将如何根据该数字进行排序 文件名(1) 文件名(2) ... 文件名(30) 文件名(4) 使用带有模式r“\(\d+)\”的正则表达式提取括号内的数字,然后转换为int进行排序 Ex: import re files = glob.glob(r"C:\Users\xxxxx\Downloads\

我已经下载了一堆文件,我正在尝试获取最近下载的版本,以便进行分析。显然,这是基于文本而不是数字的排序,因此我遇到了文件30位于文件4之前的问题。每次(您正常复制的下载)数字都在()之内。我将如何根据该数字进行排序

文件名(1) 文件名(2) ... 文件名(30) 文件名(4)


使用带有模式
r“\(\d+)\”
的正则表达式提取括号内的数字,然后转换为
int
进行排序

Ex:

import re

files = glob.glob(r"C:\Users\xxxxx\Downloads\Filename*")
files = sorted(files, key=lambda x:int(re.search(r"\((\d+)\)", x).group(1)), reverse = True)

使用带有模式
r“\(\d+)\”
的正则表达式提取括号内的数字,然后转换为
int
进行排序

Ex:

import re

files = glob.glob(r"C:\Users\xxxxx\Downloads\Filename*")
files = sorted(files, key=lambda x:int(re.search(r"\((\d+)\)", x).group(1)), reverse = True)

可以在排序函数中使用键。它们使用一个函数来获取括号之间的int值

e、 g


可以在排序函数中使用键。它们使用一个函数来获取括号之间的int值

e、 g


回答得好。可能有助于向新手解释您使用的技巧。回答得好。可能有助于向新手解释您使用的技巧。
def get_num(x): 
    return int(x.split('(')[1].lstrip().split(')')[0])

files = glob.glob(r"C:\Users\xxxxx\Downloads\Filename*")

files = sorted(files, key = get_num, reverse = True)

print(files)
exit()