刚学习python文件操作,好奇有没有办法同时对文件进行读写操作?
我试着同时用‘r’和‘w‘方法打开了文件,但是如果进行write()操作之后,文件内容会被清空
刚学习python文件操作,好奇有没有办法同时对文件进行读写操作?
我试着同时用‘r’和‘w‘方法打开了文件,但是如果进行write()操作之后,文件内容会被清空
你们人类所说的"同时"是不存在的.存在的是能在一个文件句柄下进行读或者写.
w+是会覆盖原文件的.你可以读,但是这时文件中是没有内容给你读的.
你可以写一些内容进去再读出来.
>>>` open("a.txt","w+").read()
''`
>>> open("test.txt","w+").read()
''
w+
r+
a+
"w+"可以让你文件原来的内容不被“清空”,但你当你往文件中写数据时,写入位置处原来的数据肯定会被“覆盖”。所以,你要考虑清楚,你所说的“同时读写”到底是个什么场景,你预期的行为是什么。
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.9k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决
'w' 表示建立文件,如果存在就清空成空文件。'w+' 就是 'w' 加上读操作的能力。'a' 是追加,'a+' 就是 'a' 加上读操作的能力。'r' 是读取文件,'r+' 就是可读可写。
不过除非你真正明白你在做什么,不要同时读写文件,因为结果通常不是你想要的(特别是 Python 2 + Windows 还有你意想不到的行为)。
建议先阅读手册 man 3 fopen 及 man 2 open。