自动在文件夹中创建文件(Python)

时间:2017-07-12 07:46:11

标签: python file datetime directory

问题是:我必须自动创建一个文件到以前自动创建的文件夹中。

让我更好地解释一下。首先,我发布用于创建文件夹的代码...

import os
from datetime import datetime

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

now = datetime.now()
newDirName = now.strftime("%Y%m%d-%H%M%S-%f")
folder = os.mkdir('C:\\Users\\User\\Desktop\\' + newDirName)

此代码将在桌面上创建一个文件夹,其中包含时间戳(包含微秒以使其尽可能唯一..)作为名称。

现在我想在文件夹中创建一个文件(例如txt)。我已经有了代码来做...

file = open('B' + timestr, 'w')
file.write('Exact time is: ' + timestr)
file.close()

我怎样才能"结合"这个在一起?首先创建文件夹,并在其附近立即创建文件?

谢谢。如果还不清楚,请随时提问。

1 个答案:

答案 0 :(得分:3)

是的,只需创建一个目录,然后立即创建一个文件。默认情况下,Python中的所有I / O操作都是同步的,因此您不会遇到任何竞争条件。

产生的代码(也会对您的代码进行一些改进):

import os
from datetime import datetime

timestr = datetime.now().strftime("%Y%m%d-%H%M%S-%f")
dir_path = os.path.join('C:\\Users\\User\\Desktop', timestr)
folder = os.mkdir(dir_path)

with open(os.path.join(dir_path, 'B' + timestr), 'w') as file:
    file.write('Exact time is: ' + timestr)

您还可以通过用

替换硬编码的桌面目录路径,使您的代码(几乎)跨平台
os.path.join(os.path.expanduser('~'), 'Desktop')