web-dev-qa-db-ja.com

OSError:[WinError 123]ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません

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

私が間違えていることを教えてくださいos.rename zおよび宛先の新しい文字列を渡すときの関数。

5
sud
>>> str(datetime.datetime.now())
'2017-08-10 19:52:39.057834'

コロン(:)ドライブを残りのパスから分離するために使用されます。 Windowsのファイル名には使用できません。

私はお勧めします:

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

(そしておそらくスペースも取り除くか、日付に互換性のあるカスタム形式を使用します)