创建缺少的目录/文件结构 - Python

时间:2015-06-01 19:58:28

标签: python

我正在编写一个使用.log文件执行某些操作的函数:程序会在继续之前检查/logs/ansible.log是否存在。如果/logs/ansible.log不存在,则应该继续创建文件/目录结构(之前都不存在)。

try:
  if not os.path.exists("/logs/ansible.log"):
     # create the /logs/ansible.log file
finally:
  # do something

我知道我可以使用ansible.log创建open('ansible.log', 'w')文件并使用os.makedirs('/logs/')创建目录,但是如何一次创建'/logs/ansible.log'

***假设程序正在执行root

1 个答案:

答案 0 :(得分:3)

def createAndOpen(filename, mode):
     os.makedirs(os.path.dirname(path), exist_ok=True)
     return open(filename, mode)

现在,您可以打开文件并立即创建文件夹:

with createAndOpen('/logs/ansible.log', 'a') as f:
    f.write('Hello world')

否则,这是不可能的。操作系统没有为您提供单一的功能,因此无论如何存在这样做都必须具有与上述类似的逻辑。对你不太了解。但由于它根本不存在,你可以自己创建它。