如果文件存在,则以读/写方式打开文件的最佳方式是什么?如果不存在,则创建文件并以读/写方式打开文件?据我所知,file = open('myfile.dat', 'rw')
应该这样做,对吧?
它不适用于我(Python 2.6.2),我想知道这是不是版本问题,或者不应该像那样工作,或者什么。
底线是,我只需要一个问题的解决方案。我对其他东西很好奇,但我需要的是一种很好的方式来完成开头的部分。
封闭的目录可由用户和组写入,但不能由其他用户写入(我在Linux系统上...换句话说,权限是775 ),确切的错误是:
IOError:没有这样的文件或目录。
发布于 2010-06-03 23:12:40
您应该在w+
模式下使用open
:
file = open('myfile.dat', 'w+')
发布于 2013-03-12 19:06:49
以下方法的优点是,即使在过程中引发异常,也可以在块的末尾正确关闭文件()。它等同于try-finally
,但短得多。
with open("file.dat","a+") as f:
f.write(...)
...
a+将打开一个文件以供追加和读取。如果文件存在,则文件指针位于文件的末尾。文件将在追加模式下打开。如果该文件不存在,它将创建一个新文件进行读写。-Python file modes
seek() method设置文件的当前位置。
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”-请参阅堆栈溢出问题。
发布于 2015-05-04 09:49:43
最好的做法是使用以下代码:
import os
writepath = 'some/path/to/file.txt'
mode = 'a' if os.path.exists(writepath) else 'w'
with open(writepath, mode) as f:
f.write('Hello, world!\n')
https://stackoverflow.com/questions/2967194
复制相似问题