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

Python如何将文件保存到按时间戳动态创建的目录中

修复方案

你的代码有3个核心问题,修正后即可实现导出到时间戳目录的需求:

  • createdir()函数存在语法错误,且没有返回创建好的目录路径,主脚本无法拿到新建目录的位置
  • 路径拼接逻辑错误,os.path.join()使用方式不对,Windows路径的反斜杠未做转义处理容易出现路径识别失败
  • 导出Excel时错误地把Python代码片段写进了路径字符串,属于无效路径,系统无法找到对应存储位置

1. 修正目录创建脚本 createtimestampdir.py

替换为以下代码,修复语法问题,同时让函数返回最终生成的目录路径:

import datetime
import os

def createdir():
    now = datetime.datetime.today()
    nTime = now.strftime("%d-%m-%Y")
    # 路径前加r前缀,避免反斜杠触发转义
    source = r'D:\GIT-files\Automate-Stats\SVN_sample_files\svnfiles'
    # 正确传入多段路径给os.path.join,自动适配系统路径分隔符
    dest = os.path.join(source, nTime)
    if not os.path.exists(dest):
        os.makedirs(dest)
    # 返回目标目录路径,供外部脚本调用
    return dest

2. 修正主业务脚本的导出逻辑

主脚本开头要额外导入os模块,调用createdir()时接收返回的目录路径,拼接完整的文件保存路径后再导出即可:

import os
import pandas as pd
from timestampdirectory import createdir

print("-------------------------------------------------------")
print("Output.csv FILE")
print("-------------------------------------------------------")
df = pd.read_csv(r"D:\GIT-files\Automate-Stats\SVN_sample_files\sample_svn_input.txt", sep = '|')
df.columns = ['groups']
df['New Columns'] = df['groups'].apply(lambda x : x.split('=')[0])
df['groups'] = df['groups'].apply(lambda x : ' '.join(x.split('=')[1:]))
df['groups'] = df['groups'].apply(lambda x : x.split(','))

df = df.explode('groups')
df.rename(columns = {'groups':'users', 'New Columns':'Groups'}, inplace = True)
df["users"] = df["users"].str.strip()
print(df)

# 获取新建的时间戳目录路径
target_dir = createdir()
# 拼接完整的文件存储路径
save_file_path = os.path.join(target_dir, "sample_svn_input_update.xlsx")
# 导出Excel,保留原有的index=False参数
df.to_excel(save_file_path, index=False)

修正后运行主脚本,就会自动在指定的svnfiles目录下生成dd-mm-YYYY格式命名的日期目录,处理完的Excel文件会直接存入该目录,不会出现路径找不到的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:54:33