什么';这是';r+';和';a和x2B';什么时候用python打开文件?
我尝试了什么';这是';r+';和';a和x2B';什么时候用python打开文件?,python,Python,我尝试了r+和a+打开文件并进行读写,但是'r+'和'a+'都将str附加到文件的末尾 那么,r+和a+之间有什么区别呢 加: 我找到了原因: 我已经读取了file对象,但忘记了查找(0)以将位置设置为beginPython以相同的方式打开文件: r+打开进行读写。流位于文件的开头 a+打开以进行读取和追加(在文件末尾写入)如果文件不存在,则创建该文件。读取的初始文件位置在文件的开头,但输出会附加到文件的结尾(但在某些Unix系统中,无论当前搜索位置如何) 一个区别是r+如果文件不存在,则不
r+
和a+
打开文件并进行读写,但是'r+'和'a+'都将str附加到文件的末尾
那么,r+
和a+
之间有什么区别呢
加: 我找到了原因: 我已经读取了file对象,但忘记了查找(0)以将位置设置为beginPython以相同的方式打开文件:
打开进行读写。流位于文件的开头r+
打开以进行读取和追加(在文件末尾写入)如果文件不存在,则创建该文件。读取的初始文件位置在文件的开头,但输出会附加到文件的结尾(但在某些Unix系统中,无论当前搜索位置如何)a+
r+
如果文件不存在,则不会创建文件,并且打开失败。但是在a+
的情况下,如果文件不存在,则将创建该文件。如果您在C
中使用了它们,则它们几乎与在C中使用的相同
从fopen()函数的-
r+
:-打开进行读写。该流位于
这个
文件的开头。
a+
:-打开进行读写。如果创建了该文件,则会创建该文件
不
存在。流位于文件的末尾。海底-
昆特对文件的写入总是以当时的当前速度结束
文件结束,不考虑任何干预fseek(3)或类似内容
官方文档暗示“忘记寻找”行为实际上并没有得到保证(它与“某些”unix一起工作):。因此,a+
的工作方式与C不完全相同。我建议您对答案进行编辑,以反映以下事实:模式的工作方式与C不完全相同,并且输出不一定附加到文件的末尾(尽管是在没有进行寻道时)。@EOL好吧,我必须同意这一点,但是我仍然不确定在某些unix中,暗示pythonic函数的fopen
是否具有相同的行为。但是,由于open
函数有其他模式(U
,rU
),我们可以在答案中添加“几乎”。@EOL Python不依赖系统的C库来实现这一点吗?我也会做出同样的行为。@JanneKarila:问得好。:)我猜CPython确实依赖于系统的C库。不过,我不确定其他Python实现(Jython、PyPy等)。