You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现每次运行程序自动修改文件名并保存至独立文件夹

两种简洁实现:自动命名文件并保存到独立文件夹

嘿,作为Python新手,你的需求其实特别常见,我来给你两个清爽的解决方案,分别对应日期命名和计数器命名,还帮你搞定自动创建文件夹的问题,不用手动操心~

一、用文件创建日期命名(推荐更简洁的写法)

你之前的日期拼接方式有点啰嗦,Python的datetime模块里的strftime方法可以直接生成格式化的日期字符串,再结合pathlib(Python3.4+自带,比os.path更直观)来处理路径,代码会简洁很多:

from datetime import datetime
from pathlib import Path
import pandas as pd

# 定义目标文件夹路径
target_folder = Path(r"C:\bla\bla\path\to\your_folder")
# 自动创建文件夹(如果不存在的话)
target_folder.mkdir(exist_ok=True)

# 生成带日期的文件名,比如"xml_2024_05_20.xml"
current_date = datetime.now().strftime("%Y_%m_%d")
file_path = target_folder / f"xml_{current_date}.xml"

# 写入文件
with open(file_path, "w+") as f:
    for index, row in df.iterrows():
        xml_content = csv_to_xml(row)
        print(xml_content)
        f.write(xml_content)

解释一下:

  • strftime("%Y_%m_%d")直接生成年_月_日格式的字符串,比手动拼接月份、日期、年份省心多了,还能自动补零(比如5月会变成05)
  • Path.mkdir(exist_ok=True)会自动创建文件夹,如果文件夹已经存在也不会报错,很安全
  • 用/拼接路径是pathlib的特色,比os.path.join更直观

如果想要更精确的时间(比如到时分秒,避免同一天多次运行覆盖文件),可以把日期格式改成"%Y_%m_%d_%H_%M_%S",生成类似xml_2024_05_20_14_30_25.xml的文件名。

二、用计数器命名(自动递增不重复)

如果想用计数器命名,核心是先统计目标文件夹里已有的同名前缀文件,然后取最大的数字加1。这里用glob模块来匹配文件,代码也很简洁:

import glob
from pathlib import Path
import pandas as pd

target_folder = Path(r"C:\bla\bla\path\to\your_folder")
target_folder.mkdir(exist_ok=True)

# 匹配文件夹里所有以"xml_"开头、".xml"结尾的文件
existing_files = glob.glob(str(target_folder / "xml_*.xml"))
# 提取已有文件的数字部分,比如从"xml_3.xml"里拿到3
counts = []
for file in existing_files:
    try:
        # 分割文件名,提取数字
        num = int(Path(file).stem.split("_")[-1])
        counts.append(num)
    except ValueError:
        # 如果有不符合命名规则的文件,跳过
        continue

# 确定下一个计数器数字,没有文件的话从1开始
next_count = max(counts) + 1 if counts else 1
file_path = target_folder / f"xml_{next_count}.xml"

# 写入文件
with open(file_path, "w+") as f:
    for index, row in df.iterrows():
        xml_content = csv_to_xml(row)
        print(xml_content)
        f.write(xml_content)

解释一下:

  • glob.glob可以快速匹配符合规则的文件,不用自己遍历文件夹
  • 提取数字的时候加了异常处理,避免文件夹里有其他命名格式的文件导致报错
  • 自动判断起始数字,如果文件夹是空的,就从xml_1.xml开始

小提示

  • 如果你用的是Python3.6+,f-string(就是f"xml_{current_date}"这种写法)是格式化字符串最方便的方式,一定要掌握~
  • 两种方式可以结合,比如日期+计数器,比如xml_2024_05_20_1.xml,适合同一天需要生成多个文件的场景

内容的提问来源于stack exchange,提问作者Johannes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:04:32