我正在编写一个使用.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
答案 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')
否则,这是不可能的。操作系统没有为您提供单一的功能,因此无论如何存在这样做都必须具有与上述类似的逻辑。对你不太了解。但由于它根本不存在,你可以自己创建它。