我正在编写一个对 .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
我知道我可以使用 open('ansible.log', 'w')
创建 ansible.log
文件并使用 os 创建目录。 makedirs('/logs/')
,但是我怎样才能简单地立即创建 '/logs/ansible.log'
?
*** 假设程序正在作为 root
最佳答案
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')
否则,这是不可能的。操作系统不会为您提供执行此操作的单一功能,因此执行此操作的任何其他功能都必须具有与上述类似的逻辑。只是对你来说不太明显。但由于它根本不存在,您可以自己创建它。
关于python - 创建丢失的目录/文件结构 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30582162/