python - 创建丢失的目录/文件结构 - Python

标签 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

我知道我可以使用 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/

相关文章:

python - 想知道 GeoDjango 和 map 服务

python - 如何将键值管道分隔文件转换为带标题的完美 csv 文件

python - pip 需求文件中的平台独立性

python - 如何将日期添加到文件名?

python - 错误 : django. core.exceptions.AppRegistryNotReady : The translation infrastructure. .. 在 python 中

python - 将复数列表写入为二进制数据

python - Jupyter 中的 Sqlite 查询没有输出

python - Scrapy 登录适用于某些网站,但不适用于其他网站

python - 本地保存来自远程 iPython notebook 的数据

python - 导出tensorflow模型时为"Cannot infer num from shape"