我正在编写一个对.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
Run Code Online (Sandbox Code Playgroud)
我知道我可以用 来创建ansible.log文件open('ansible.log', 'w')并用 来创建目录os.makedirs('/logs/'),但是我怎么能简单地'/logs/ansible.log'一次创建呢?
*** 假设程序被执行为 root
def createAndOpen(filename, mode):
os.makedirs(os.path.dirname(path), exist_ok=True)
return open(filename, mode)
Run Code Online (Sandbox Code Playgroud)
现在,您可以打开文件并立即创建文件夹:
with createAndOpen('/logs/ansible.log', 'a') as f:
f.write('Hello world')
Run Code Online (Sandbox Code Playgroud)
否则,这是不可能的。操作系统没有为您提供执行此操作的单一功能,因此无论存在什么其他功能,都必须具有与上述类似的逻辑。只是对你不那么明显。但由于它根本不存在,您可以自己创建它。
| 归档时间: |
|
| 查看次数: |
1083 次 |
| 最近记录: |