[英]Create a directory with the date in python
我正在嘗試在python中創建一個具有日期時間擴展名的文件夾,但是每次我遇到以下錯誤時
File "create_dir.py", line 7, in <module>
os.mkdir("/home/xxx/" + time.strftime('%Y%m%d'))
OSError: [Errno 2] No such file or directory: '/home/xxx/20190322'
這是我的代碼:
#!/usr/lib/python
import os
import time
os.mkdir("/home/xxx/" + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
我在堆棧溢出中嘗試了此處提供的許多解決方案,但所有解決方案都引發了相同的錯誤。
您可能缺少import datetime
,而且,您應該使用makedirs
而不是mkdir
,因為makedirs()
創建所有中間目錄(如果不存在) :
import os
import datetime
os.makedirs("C:\\Users\\PycharmProjects\\opencv-basics" + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
輸出 (使用路徑創建一個文件夾):
C:\Users\PycharmProjects\opencv-basics2019-03-22_14-49-26
如果xxx
或任何中間路徑不存在, os.mkdir
將引發OSError
。 在創建任意目錄時,請使用os.makedirs
,以確保還會生成缺少的目錄:
import os
import datetime
os.makedirs("/home/xxx/" + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
這是我建議的代碼修復方法:
#!/usr/lib/python
import os
import datetime
os.makedirs("/home/xxx/" + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
這是我對自己所做的解釋:
我在您的代碼段中看不到datetime導入,但是,由於您沒有提及任何錯誤,我想您只是粘貼了舊版本的代碼。
確保您正在導入它。
關於主要問題,由於xxx文件夾不存在,因此應使用方法makedirs而不是makedir:
os.makedirs(path[, mode])
如果路徑尚不存在,此方法還允許您創建路徑。
這是官方文件
為了簡單起見,我還將在StackOverflow上復制相關部分:
os.makedirs(name,mode = 0o777,exist_ok = False)遞歸目錄創建功能。 與mkdir()相似,但是使所有中間級目錄都包含葉子目錄。
模式參數被傳遞給mkdir()來創建葉子目錄。 有關如何解釋的信息,請參見mkdir()描述。 要設置任何新創建的父目錄的文件權限位,可以在調用makedirs()之前設置umask。 現有父目錄的文件權限位不會更改。
如果exist_ok為False(默認值),則在目標目錄已存在的情況下引發OSError。
注意,如果要創建的路徑元素包含pardir(例如,在UNIX系統上為“ ..”),makedirs()將變得混亂。 此函數正確處理UNC路徑。
版本3.2中的新功能:exist_ok參數。
在版本3.4.1中進行了更改:在Python 3.4.1之前,如果exist_ok為True且目錄已存在,如果mode與現有目錄的模式不匹配,makedirs()仍會引發錯誤。 由於無法安全實現此行為,因此在Python 3.4.1中將其刪除。 請參閱bpo-21082。
在版本3.6中更改:接受類似路徑的對象。
在版本3.7中更改:mode參數不再影響新創建的中間級目錄的文件許可權位。
首先,您需要import datetime
,而不是時間。 然后,您要么想要使用os.makedirs
來創建任何不存在的中間目錄,要么想要將我認為不是您的真實主目錄的xxx
更改為它的實際主目錄。 測試了上面的代碼,它運行正常。
您可以使用os.system
:
import os
import datetime
path = "/home/xxx/"
current_time = datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
command = "mkdir {0}".format(current_time)
os.chdir(path)
os.system(command)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.