12

現在、以下のコードを使用してファイルを作成しています.cwdのその時点でのタイムスタンプに基づいてディレクトリを作成し、ディレクトリの場所を変数に保存してから、新しく作成されたディレクトリにファイルを作成したいと考えています.これはできますか?

def filecreation(list, filename):
    #print "list"
    with open(filename, 'w') as d:
        d.writelines(list)

def main():
    list=['1','2']
    filecreation(list,"list.txt")

if __name__ == '__main__':
    main()
4

1 に答える 1

33

つまり、このようなものですか?

import os, datetime
mydir = os.path.join(os.getcwd(), datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
os.makedirs(mydir)
with open(os.path.join(mydir, 'filename.txt'), 'w') as d:
    pass # ... etc ...

完全な機能

import errno
import os
from datetime import datetime

def filecreation(list, filename):
    mydir = os.path.join(
        os.getcwd(), 
        datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
    try:
        os.makedirs(mydir)
    except OSError as e:
        if e.errno != errno.EEXIST:
            raise  # This was not a "directory exist" error..
    with open(os.path.join(mydir, filename), 'w') as d:
        d.writelines(list)

更新:errno.EEXISTエラー番号をハードコーディングする代わりに定数を確認してください

于 2013-01-01T23:37:56.517 に答える