python - 如果文件不存在则创建文件,然后以 RW 模式打开该文件

标签 python python-3.x file io

在Python中,如果文件不存在,我尝试创建一个文件,然后以读/写模式打开它。我能够表达这一点的最简洁的方式如下:

with os.fdopen(os.open('foo.bar', os.O_RDWR | os.O_CREAT), "r+") as f:
    # read file contents...
    # append new stuff...

有更好的方法吗?我是否应该检查 if not os.path.exists('foo.bar'),如果文件不存在则创建该文件,然后以“r+”模式打开该文件?

本质上:

 if not os.path.exists('foo.bar'):
      os.makedirs('foo.bar') # or open('foo.bar', 'a').close()
 with open('foo.bar', "r+") as f:
    # read file contents...
    # append new stuff...

最佳答案

主要问题是如果文件已经存在,您是否要截断该文件。

如果是这样,则执行以下操作:

with open("filename", "w+") as f:
  f.write("Hello, world")

否则,做什么 juanpa.arrivillaga建议:

with open("filename", "a+") as f
  f.write("Hello, world")

“a+”打开文件并从文件末尾开始。检查documentation了解更多关于其工作原理的信息。

关于python - 如果文件不存在则创建文件,然后以 RW 模式打开该文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46674195/

相关文章:

python - __init__ 错误 'module' 对象不可调用

java - 为什么在这种情况下我必须以某种方式关闭 ZipOutputStream?

javascript - 如何将输入文件对象序列化为 JSON?

python-3.x - 如何使用具有管理员权限的子进程停止和启动 Windows 服务?

algorithm - 有人可以解释这个 RSA 示例的最后部分发生了什么吗?

Java - 我怎么说我不在乎这部分字符串包含什么?

python - 将 TF1 通用句子编码器加载到 TF2 - hub

python - 将 Django 调度程序应用程序与您自己的模型一起使用

python - 在 VPS 上托管多个 Django 实例

python - 在数组中搜索一个值,然后从其他相同长度的数组/ndarrays 中打印相应的值