Python中的open()不会创建一个文件,如果它不存在

如果文件存在,或者如果不存在,然后创建它并以读/写方式打开文件,将文件打开为可读/写的最佳方式是什么? 从我读的file = open('myfile.dat', 'rw')应该这样做,对吧?

它不适合我(Python 2.6.2),我想知道它是一个版本问题,还是不应该像这样或那样工作。

底线是,我只需要解决这个问题。 我对其他的东西很好奇,但我需要的只是做开幕式的一个好方法。

更新:封闭目录可由用户和组写入,而不是其他(我在Linux系统上......换言之,权限为775),确切的错误是:

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


你应该使用file = open('myfile.dat', 'w+')


以下方法的优点是,即使在路上发生异常,文件在块结尾处也会正确关闭 。 这相当于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” - 请参阅Stack Overflow问题Python文件模式的详细信息。


>>> import os
>>> if os.path.exists("myfile.dat"):
...     f = file("myfile.dat", "r+")
... else:
...     f = file("myfile.dat", "w")

r +表示读/写

链接地址: http://www.djcxy.com/p/42303.html

上一篇: open() in Python does not create a file if it doesn't exist

下一篇: How to check file size in python?