如何修改Python代码获取文件夹中名称最短的.txt文件
查找指定文件夹中名称最短的.txt文件
方法一:使用min()函数(简洁高效)
直接利用Python内置的min()函数,通过指定key参数按文件名长度筛选,是最简洁的实现方式:
import glob import os inpDir = "C:/Users/ft/Desktop/Folder" # 获取目标文件夹下所有.txt文件的完整路径 txt_files = glob.glob(os.path.join(inpDir, "*.txt")) if txt_files: # 按文件名(不含路径)的长度取最小值 shortest_file = min(txt_files, key=lambda path: len(os.path.basename(path))) print("名称最短的.txt文件:", os.path.basename(shortest_file)) else: print("目标文件夹中没有找到.txt文件")
关键点说明:
- 用
os.path.join拼接路径,避免切换工作目录可能带来的问题,代码更健壮 os.path.basename(path)提取文件名(去掉完整路径),确保只比较文件名本身的长度- 先判断
txt_files是否为空,防止空列表调用min()报错
方法二:手动遍历记录(适合理解逻辑)
如果想手动实现遍历比较的逻辑,可以这样修改你的原有代码:
import glob import os inpDir = "C:/Users/ft/Desktop/Folder" os.chdir(inpDir) txt_files = glob.glob("*.txt") if not txt_files: print("没有找到任何.txt文件") else: # 初始化最短文件和对应的长度 shortest_name = txt_files[0] min_length = len(shortest_name) # 遍历剩余文件逐一比较 for file in txt_files[1:]: current_len = len(file) if current_len < min_length: min_length = current_len shortest_name = file print("名称最短的.txt文件:", shortest_name)
关键点说明:
- 先将第一个文件设为初始的"最短文件",然后遍历后续文件更新记录
- 同样增加了空列表判断,避免无文件时出现错误
内容的提问来源于stack exchange,提问作者Joss Fres
相关产品推荐
相关产品推荐

