我正在处理一个二进制文件(.gz 文件),试图以附加模式(ab+)打开它。
正如文件 open() 以附加模式打开它所保证的那样,导致 tell() 指向文件末尾 (EOF)。但这不是我在 Ubuntu 10.04 上看到的,因为以附加模式打开文件,文件指针仍然指向文件的开头而不是结尾。但在 My Mac OS X 10.8 上并非如此,因为这些功能按预期正确运行
在 Ubuntu 10.04 上看到的行为
Python 2.6.5 (r265:79063, Oct 1 2012, 22:04:36)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> fp = open("file_name.gz", "ab+")
>>> fp.tell()
0
做一个搜索给了我正确的数字
>>> fp.seek(0, 2)
>>> fp.tell()
753236
在 Mac OS X 10.8 上看到的行为
Python 2.6.7 (r267:88850, Oct 11 2012, 20:15:00)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> fp = open("file_name.gz", "ab+")
>>> fp.tell()
753236
在其他模式“a”和“a+b”中观察到相同的行为。有没有人遇到过这种情况?