创建带有时间戳的文件夹。

17

目前我正在使用以下代码创建文件,我想要根据当前工作目录中的时间戳创建一个目录,将目录位置保存到一个变量中,然后在新创建的目录中创建文件,是否有人有办法实现这个功能?

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()
1个回答

39

你是说,类似这样的吗?

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常量而不是硬编码错误编号


@redShadow-谢谢,为什么要检查e.errno!=17?17代表什么意思? - user1927396
3
OSError 17号错误是“目录已存在”,因此在这种情况下可以忽略它(您只需要确保目录存在),但您不希望忽略诸如目录创建失败等其他错误。 - redShadow
感谢RedShadow,非常感激。作为参考,以下是我使用的代码,只需要进行微小的更改即可: . from datetime import datetime as dt. . . . 如需更多信息,请参考以下评论。 {https://dev59.com/ZY7ea4cB1Zd3GeqPHecs#32463688} - HassanSh__3571619

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接