2017-07-12 126 views
2

問題是:我必須以自動方式創建一個文件到某個已經自動創建的文件夾中。在文件夾(Python)中自動創建一個文件

讓我更好地解釋。首先我發佈用於創建該文件夾的代碼...

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() 

我該如何「結合」在一起?首先創建文件夾,並立即附近的文件?

謝謝。如果還不清楚,請隨時提問。

回答

3

是的,只需創建一個目錄,然後立即創建一個文件。 Python中的所有I/O操作都是默認同步的,所以你不會得到任何競爭條件。

產生的代碼會(也做了一些improvings你的代碼):

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') 
代替硬編碼的桌面目錄路徑
+1

增加了一些改進 – bakatrouble

+0

完美。非常感謝。有用。 – BlueTrack

相關問題