【问题标题】:OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrectOSError: [WinError 123] 文件名、目录名或卷标语法不正确
【发布时间】:2017-08-10 17:45:36
【问题描述】:

我正在编写 python 程序以用当前时间和日期重命名文件,但出现以下错误。

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect

我的代码

import os
import sys
import datetime 

file=open("C:\\Users\\sun\\Desktop\\ping",'w')
z=file.name
dt = str(datetime.datetime.now())
file.close()
print(z)
new ='C:\\Users\\sun\\Desktop\\ping_'+dt+'.txt'
os.rename(z,new)
print("i am done")

输出

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect

请告诉我在传递 z 和目标新字符串时我对 os.rename 函数犯了什么错误。

【问题讨论】:

  • 日期可能包含斜杠和冒号...非法文件名。

标签: python python-3.x datetime


【解决方案1】:
>>> str(datetime.datetime.now())
'2017-08-10 19:52:39.057834'

注意冒号 (:),它用于将驱动器与路径的其余部分分开。您不能在 Windows 上的文件名中使用它。

我建议:

datetime.datetime.now().replace(":","_")

(也许也可以去掉空格,或者为您的日期使用兼容的自定义格式)

【讨论】:

  • 您的输入对我的代码的更改有很大帮助。感谢您的及时答复
猜你喜欢
  • 1970-01-01
  • 2020-06-07
  • 2020-03-24
  • 2021-01-07
  • 1970-01-01
  • 2021-04-11
  • 2020-07-30
  • 2017-05-27
  • 2020-04-08
相关资源
最近更新 更多