0

open 関数を使用しようとすると、このエラーが発生します。私の理解が正しければ、ファイルが存在しない (存在しない) 場合は、自動的に作成されます。「w」を「w+」に変更しようとしましたが、同じエラーが発生しました。

Traceback (most recent call last):
  File "altdl.py", line 24, in <module>
    sys.stdout = open(str(start_dir + "\\Logs\\" + "log_" + str(now.date()) + "_
" + str(now.time()) + ".log"), 'w')
IOError: [Errno 22] invalid mode ('w') or filename: 'C:\\Users\\Vaibhav\\Desktop
\\Test\\Logs\\log_2013-07-02_11:21:37.717000.log'

ちなみにstart_dirは に設定されていstr(os.getcwd())ます。

4

2 に答える 2

0

他の回答で述べたように、Windows はコロンがあまり好きではありません。それでは、別の文字を使用して時刻/日付をフォーマットしてみましょう。

import datetime
filename = "log_{}.log".format(datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
# filename should be something like : 'log_2013-07-02_20-47-06.log'
f = open(filename, 'w')

ほら!

また、Linux と Windows の両方でプログラムを実行できるようにos.joinpath、OS 関連のすべてのパス区切り ( ) をハードコーディングする代わりに使用することをお勧めします。\\

于 2013-07-02T18:50:39.273 に答える
0

残念ながら、Windows はパス名にコロンを使用することを嫌います。

次のようなものを試してください:

 with open("C:\\Users\\Vaibhav\\Desktop\\Test\\Logs\\log_2013-07-02_11.21.37.717000.log", "w") as f:
    pass
于 2013-07-02T18:42:00.617 に答える