246

ここに機能コードがあります(成功したファイルを作成します)

sys.stdout = open('filename1.xml', 'w')

今、現在の日付/時刻でファイルに名前を付けようとしています (私は Python の専門家ではありません)。

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")
sys.stdout = open(filename1 + '.xml', 'w')

正確な日付と時刻を含むファイル名を書き出したいのですが、それは、プログラムが既に作成した xml ファイルです。ファイルに名前を付けるだけです。上記のコードは機能しません。

エラーが返されました:

  File "./fix.py", line 226, in <module>
    filenames = datetime.now().strftime("%Y%m%d-%H%M%S")
AttributeError: 'module' object has no attribute 'now'
4

8 に答える 8

498

を使用していない場合datetime、これにより、指定した現在の時刻と日付の形式で文字列を取得するという問題が解決されます (質問に答えます)。

import time
timestr = time.strftime("%Y%m%d-%H%M%S")
print timestr

収量:

20120515-155045

ファイル名にこの文字列を追加または使用できます。

于 2012-05-15T19:48:07.850 に答える
59

この行を変更

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")

filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")

余分に注意してくださいdatetime。または、に変更 import datetimeしますfrom datetime import datetime

于 2012-05-15T19:55:09.447 に答える
39

nowdatetimeモジュール内のクラスのクラス メソッドですdatetime。だからあなたが必要です

datetime.datetime.now()

または、別のインポートを使用できます

from datetime import datetime

このようにするとdatetime.now、質問のコードに従って使用できます。

于 2012-05-15T19:53:53.607 に答える
6

「ファイル名に追加するための」デフォルト(および安全な)を返す単一のフォーマッタがないことに驚いています-時間のフォーマット、単純に書くことができますFD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

"%x" instead of "%Y%m%d-%H%M%S"
于 2016-01-20T02:31:45.593 に答える