猿问

被python文件模式“w+”所迷惑

被python文件模式“w+”所迷惑

博士,

模式“r+”、“w+”和“a+”打开文件以进行更新(注意,“w+”截断文件)。在二进制模式下,在区分二进制文件和文本文件的系统上,将‘b’附加到模式中以打开文件;在没有这种区别的系统上,添加‘b’没有任何影响。

这里

W+:打开一个既可写又可读的文件。如果文件存在,则覆盖现有文件。如果该文件不存在,则创建一个用于读写的新文件。

但是,如何读取打开的文件w+?


白衣非少年
浏览 1489回答 3
3回答

小怪兽爱吃肉

假设您正在用with像你应该说的那样。然后你会做这样的事情来阅读你的文件:with open('somefile.txt', 'w+') as f:     # Note that f has now been truncated to 0 bytes, so you'll only     # be able to read data that you write after this point     f.write('somedata\n')     f.seek(0)  # Important: return to the top of the file before reading, otherwise you'll just read an empty string     data = f.read() # Returns 'somedata\n'注意f.seek(0)-如果你忘了这件事,f.read()调用将尝试从文件末尾读取,并返回一个空字符串。

阿晨1998

Python中的所有文件模式r读书用r+打开以进行读写(无法截断文件)w写作用w+用于写入和读取(可以截断文件)rb用于读取二进制文件。文件指针放在文件的开头。rb+读取或写入二进制文件wb+写入二进制文件a+打开供追加ab+打开一个文件,用于二进制文件的附加和读取。如果文件存在,则文件指针位于文件的末尾。文件以附加模式打开。x打开以进行独占创建,如果文件已经存在,则失败(Python 3)
随时随地看视频慕课网APP

相关分类

Python
我要回答