如何用Python先写入文件夹内奇数序号文件名再写入偶数序号文件名到文本文件
Python实现先写入奇数序号文件名再写入偶数序号文件名
假设你的文件名格式是XX.png(XX为两位数字序号),可以按以下步骤实现需求:
- 分类文件名:遍历文件夹时,提取每个文件名的序号,判断奇偶后分别存入两个列表
- 有序排序:对两个列表按序号从小到大排序,保证写入顺序符合预期
- 写入文件:先写入所有奇数序号的文件名,再写入偶数序号的文件名
完整代码示例
import os # 指定目标文件夹路径 folder_path = "./your_target_folder" # 初始化存储奇偶文件名的列表 odd_files = [] even_files = [] # 遍历文件夹内的所有文件 for filename in os.listdir(folder_path): # 只处理png文件(可根据需求修改后缀) if filename.endswith(".png"): # 提取序号部分并转为整数(去掉后缀,忽略前导零) try: file_num = int(filename.split(".")[0]) except ValueError: # 跳过不符合格式的文件 continue # 判断奇偶并分类 if file_num % 2 == 1: odd_files.append(filename) else: even_files.append(filename) # 对两个列表按序号排序(保证顺序从小到大) odd_files.sort(key=lambda x: int(x.split(".")[0])) even_files.sort(key=lambda x: int(x.split(".")[0])) # 写入到文本文件 with open("sorted_files.txt", "w", encoding="utf-8") as f: # 先写奇数序号文件 for file in odd_files: f.write(file + "\n") # 再写偶数序号文件 for file in even_files: f.write(file + "\n")
关键说明
- 序号提取:通过
filename.split(".")[0]获取文件名的数字部分,转成整数后判断奇偶,自动忽略前导零的影响 - 排序处理:使用
sort()方法配合lambda表达式,按序号大小排序,避免遍历文件夹时的无序问题 - 异常处理:加入
try-except跳过不符合XX.png格式的文件,避免程序报错
内容的提问来源于stack exchange,提问作者Dustin N
相关产品推荐
相关产品推荐

