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

Python中为现有Excel文件名添加时间戳时遭遇FileNotFoundError的问题求助

Python中为现有Excel文件名添加时间戳时遭遇FileNotFoundError的问题求助

嗨,我刚接触Python,尝试给现有Excel文件的名称加上时间戳,结果代码报了FileNotFoundError,折腾了各种我能想到的办法还是解决不了,麻烦各位帮忙看看问题出在哪呀?

报错信息如下:

FileNotFoundError                         Traceback (most recent call last)

<ipython-input-155-c1bfbce8e566> in <module>

----> 1 os.rename(r'\dbg.ADS.DB.com\MAD-FSU\BoS_Data_Validations\Validation Engine\GTRNRE\GTRNRE_Validation_Report.xlsx',r'\dbg.ADS.DB.com\MAD-FSU\BoS_Data_Validations\Validation Engine\GTRNRE\GTRNRE_Validation_Report_'+TSExcel+'.xlsx')

FileNotFoundError: [WinError 3] The system cannot find the path specified: '\\dbg.ADS.DB.com\\MAD-FSU\\BoS_Data_Validations\\Validation Engine\\GTRNRE\\GTRNRE_Validation_Report.xlsx' -> '\\dbg.ADS.DB.com\\MAD-FSU\\BoS_Data_Validations\\Validation Engine\\GTRNRE\\GTRNRE_Validation_Report_20230710-16:27:57.xlsx'

我写的代码:

import pandas as pd
import datetime as dt
import os

timestamp = pd.Timestamp(dt.datetime(2021, 10, 10))
res = timestamp.today()

def numConcat(num1, num2):
    # Convert both the numbers to strings
    num1 = str(num1)
    num2 = str(num2)
    # Concatenate the strings
    num1 += num2
    return int(num1)

a = res.year
b = res.strftime("%m")
CurrDate=numConcat(a, b)
CurrDate

TSExcel = str(a) + res.strftime('%m%d-%H:%M:%S')

os.rename(r'\dbg.ADS.DB.com\MAD-FSU\BoS_Data_Validations\Validation Engine\GTRNRE\GTRNRE_Validation_Report.xlsx',
          r'\dbg.ADS.DB.com\MAD-FSU\BoS_Data_Validations\Validation Engine\GTRNRE\GTRNRE_Validation_Report_'+TSExcel+'.xlsx')

我试过各种自己能想到的调整,但还是不行,有没有大佬能指点一下问题所在呀?


社区大佬的分析与解决方案:

嘿,刚看了你的问题,主要有两个关键问题导致报错,咱们一步步来解决:

  1. UNC网络共享路径格式错误
    你访问的是网络共享文件夹,Windows下的UNC路径必须以\\开头(对应Python原始字符串里的r'\\server\share'),但你的代码里写的是r'\dbg.ADS.DB.com\...',开头只有一个反斜杠,系统识别不了正确的共享路径,自然找不到文件。

  2. 文件名包含Windows非法字符
    你生成的时间戳TSExcel里有冒号:,比如20230710-16:27:57,而Windows文件名是不允许出现冒号的,就算路径对了,重命名也会失败,得把冒号换成合法字符,比如横杠-或者下划线_。

另外,你生成时间戳的代码有点冗余,可以简化一下,直接用pandas的时间戳格式化就能得到想要的结果,不用自定义拼接函数。

修正后的代码:

import pandas as pd
import os

# 生成合法的时间戳字符串(把冒号换成横杠)
TSExcel = pd.Timestamp.today().strftime('%Y%m%d-%H-%M-%S')

# 修正UNC路径:开头用两个反斜杠(原始字符串里写\\)
original_path = r'\\dbg.ADS.DB.com\MAD-FSU\BoS_Data_Validations\Validation Engine\GTRNRE\GTRNRE_Validation_Report.xlsx'
new_path = r'\\dbg.ADS.DB.com\MAD-FSU\BoS_Data_Validations\Validation Engine\GTRNRE\GTRNRE_Validation_Report_' + TSExcel + '.xlsx'

# 先检查原始文件是否存在,避免报错
if os.path.exists(original_path):
    os.rename(original_path, new_path)
    print("文件重命名成功!")
else:
    print(f"错误:找不到文件 {original_path}")

补充一点:如果你的网络共享文件夹需要权限访问,可能还要确保当前运行Python的用户有权限读写该路径下的文件哦。


备注:内容来源于stack exchange,提问作者dskmrjt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 07:13:14