在Python中创建一个带有日期的目录
在Python中创建一个带有日期的目录
我试图在Python中创建一个带有日期时间扩展名的文件夹,但每次都会出现以下错误:\n
在“create_dir.py”文件中,第7行,在中 os.mkdir("/home/xxx/" + time.strftime('%Y%m%d')) OSError: [Errno 2] 没有这样的文件或目录:'/home/xxx/20190322'
\n这是我的代码:\n
#!/usr/lib/python import os import time os.mkdir("/home/xxx/" + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
\n我尝试了Stack Overflow上提供的许多解决方案,但它们都抛出了相同的错误。
在Python中创建带有日期的目录
问题原因:
在提供的代码中,没有看到datetime模块的导入语句,但是由于没有提到关于它的错误,我猜测你只是粘贴了一个旧版本的代码。请确保导入了datetime模块。
关于主要的问题,由于目录"xxx"不存在,你应该使用makedirs方法而不是makedir方法。
解决方法:
下面是我对你的代码的建议修复:
#!/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])
这个方法还允许你在路径不存在时创建路径。
这里是官方文档的相关部分:
os.makedirs(name, mode=0o777, exist_ok=False) 递归目录创建函数。类似mkdir(),但会创建所需的所有中间级目录来包含叶目录。 mode参数传递给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且目录已经存在,makedirs()仍然会在模式不匹配现有目录的模式时引发错误。由于这种行为不可能安全实现,因此它在Python 3.4.1中被删除。请参阅bpo-21082。 版本3.6中更改:接受类似路径的对象。 版本3.7中更改:模式参数不再影响新创建的中间级目录的文件权限位。
希望这些解释对你有帮助!
问题:"Create a directory with the date in python"出现的原因是可能忘记导入datetime模块。此外,应该使用makedirs而不是mkdir,因为makedirs函数可以创建不存在的中间目录。
解决方法是导入os和datetime模块,并使用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
在Python中创建带有日期的目录的问题是由于使用os.mkdir
函数而引起的。当使用os.mkdir
函数创建目录时,如果目录的路径中的某个中间路径不存在,会抛出OSError
异常。为了解决这个问题,可以使用os.makedirs
函数来创建目录,它会自动创建缺失的中间目录。
下面是一个使用os.makedirs
函数创建带有当前日期的目录的示例代码:
import os import datetime os.makedirs("/home/xxx/" + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
在这个示例中,首先导入了os
和datetime
模块。然后使用datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
获取当前日期和时间,并将其格式化为YYYY-MM-DD_HH-MM-SS
的字符串。最后,使用os.makedirs
函数创建一个以当前日期命名的目录,该目录位于/home/xxx/
路径下。
通过使用os.makedirs
函数,即使/home/xxx/
路径下的中间目录不存在,也会被自动创建,确保了目录的创建过程不会抛出异常。这样就能够成功创建带有日期的目录了。