我注意到Python文件处理程序在append模式下创建时有一个奇怪的行为。在下面的示例中,ofh.tell()
第一次在append模式下使用它时返回0
。在
ofh = open("test.txt","wb")
print ofh.tell() # output: 0
ofh.write("asdf")
print ofh.tell() # output: 4
ofh.close()
ofh = open("test.txt","ab")
print ofh.tell() # output: 0
ofh.seek(0,2) # seek to end of file
print ofh.tell() # output: 4
对于一些安全检查,我需要它返回“实际”位置(4)。在
使用2.7位Python和647位I。在
在python2中,append模式意味着every write goes to the end of the file。文件指针可能真的从零开始,但这并不重要,因为它会在每次写入时都查找到结尾。在
注意,}在append模式下基本上是无用的,因为前者总是被隐式seek to end覆盖。如果需要在没有此行为的情况下附加到文件,请在
seek()
和{r+b
模式下打开它,然后手动查找到文件的末尾。在相关问题 更多 >
编程相关推荐