python中的open()如果文件不存在,则不会创建文件

2022-09-05 01:19:58

如果文件存在,最好以读/写方式打开文件,或者如果不存在,则创建它并以读/写方式打开它?从我读到的内容来看,应该这样做,对吧?file = open('myfile.dat', 'rw')

它不适合我(Python 2.6.2),我想知道它是否是版本问题,或者不应该像那样工作或什么。

底线是,我只需要一个问题的解决方案。我对其他事情感到好奇,但我所需要的只是一种很好的方法来做开场部分。

封闭目录可由用户和组编写,而不是其他(我在Linux系统上...所以权限775换句话说),确切的错误是:

IOError:没有这样的文件或目录。


答案 1

您应该与以下模式一起使用:openw+

file = open('myfile.dat', 'w+')

答案 2

以下方法的优点是文件在块的末尾正确关闭,即使在此过程中引发异常也是如此。它相当于 ,但要短得多。try-finally

with open("file.dat","a+") as f:
    f.write(...)
    ...

a+打开一个文件以进行追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果该文件不存在,它将创建一个新文件以进行读取和写入。-Python 文件模式

seek() 方法设置文件的当前位置。

f.seek(pos [, (0|1|2)])
pos .. position of the r/w pointer
[] .. optionally
() .. one of ->
  0 .. absolute position
  1 .. relative position to current
  2 .. relative position from end

只允许使用“rwab+”字符;必须正好有一个“rwa” - 请参阅堆栈溢出问题Python文件模式详细信息