我想询问是否可以在以模式开头的路径中找到最新文件夹。
示例,让我们说我们在这条道路上:C:\Users\user
有4个文件夹(以及我们不关心的许多其他文件夹)名称:
folder13, folder15, folder17, folder20
如何使用Python返回最新文件夹的编号为20
?
答案 0 :(得分:0)
首先,您可以使用os.walk函数从指定的根文件夹(递归)或os.listdir解析所有子文件夹,以获取包含目录中条目名称的列表。
接下来,您可以使用re模块,它提供了一些使用正则表达式的函数。
这是一个例子:
var promises = [];
promises.push(firebase.database().ref('experiences').child(experience_id).once('value'));
promises.push(firebase.database().ref('users').child(from_UID).once('value'));
// Wait for all promises to resolve
Promise.all(promises).then(function(res) {
// res[0] is your experience_id snapshot
// res[1] is your from_UID snapshot
// Do something...
});
此网站可帮助您在实施前测试正则表达式:https://regex101.com/
答案 1 :(得分:0)
首先使用os.listdir()
生成文件和文件夹列表。然后过滤它,使其只包含文件夹。接下来使用sorted()
根据名称中包含的任何数值对条目进行排序。最后,获取排序列表中的最后一个条目以获得具有最大数字的条目:
import os
import re
folders = [folder for folder in os.listdir(r'C:\Users\user') if os.path.isdir(folder)]
folders = sorted(folders, key=lambda x: [int(v) if len(v) else -1 for v in re.findall('(\d+)', x)])
print(folders[-1])
当碰巧存在多个级别的数字时,此方法会起作用,因此例如名为Folder20_1
的文件夹将被排序为(20, 1)
。