让我们看看简单的代码:

import os

f = open('test.bin', 'wb')
f.write('X')
f.close()
# test.bin - X

f = open('test.bin', 'r+b')

f.seek(0, os.SEEK_END)
f.write('AB')
# test.bin - XAB

f.seek(0, os.SEEK_SET)
f.write('Y')
# test.bin - YAB

print f.read(1)
# test.bin - YBB and prints B 0_o whhyyy?

f.close()

为什么在这种情况下read方法就像write?
我使用Python 2.5和2.7从官方网站下载Windows。

===============>>#1 票数:3 已采纳

如果你放

f.flush()

在写'Y'之后,read(1)读取正确的值(在本例中为'A')。

所以我的猜测是,在Windows上,read()不会强制在* nix上刷新缓冲区。

  ask by Sundagy translate from so

未解决问题?本站智能推荐:

4回复

f.seek()和f.tell()读取文本文件的每一行

我想打开一个文件并使用f.seek()和f.tell()读取每一行: 的test.txt: 我的代码是: 它读取整个文件。
2回复

尽管文件以“ r”模式打开,但seek()无法正常工作

我有一个日期和浮点数(天,月,年,浮点数)的CSV文件。 这是样本 我想阅读第一行,然后阅读最后一行: getInputFileName()查看。 是一个返回文件名的函数。 然后, numberLines是文件中的行数。 然后, 直到这里一切正常。 但是
4回复

lseek / write突然返回-1,errno = 9(错误的文件描述符)

我的应用程序使用lseek()来寻找写入数据的所需位置。 使用open()成功打开文件,我的应用程序能够多次使用lseek()和write() 。 在给定的时间,对于某些用户而且不易重现, lseek()返回-1, errno值为9.在此之前文件未关闭且文件句柄(int)未重置。
2回复

使用PHP读取文本文件中的特定行

我想使用PHP从文本文件的第51至100行读取。 文本文件在任何给定时间包含少于500行。 我想从第51行到第100行阅读。没有其他行。 希望您能理解这个问题。 我已经使用了很多次并且喜欢它。 只是在任何地方都找不到答案。 任何帮助将不胜感激。 提前致谢。
3回复

寻求方法不在Powershell脚本中工作

我正在尝试使用.net API来搜索大型数据文件。 出于某种原因,我无法使其发挥作用。 这是我的代码: } 如果我使用0作为搜索方法的参数,它会按预期从头开始搜索,但它也会在写入读取行之前将0写入控制台。 例: 如果我尝试使用4096而不是0,它只写出: 我原
2回复

什么时候顺序搜索小读取比读取整个文件慢?

我遇到了一种情况, lseek通过一个500MB的文件重复前进,并在每次搜索之间读取一小块(300-500字节)似乎比从头开始read整个文件并忽略字节要慢我不想要。 即使我只做了5到10次搜索,这似乎也是真的(所以当我最终只读取文件的1%时)。 我对此感到有些惊讶 - 为什么反复寻求前进(
2回复

使用perl读取系统文件而不在打开时发出额外的搜索系统调用

我正在尝试使用perl来解析/proc和/sys linux伪文件系统( procfs和sysfs )中的一些伪文件。 这些文件与常规文件不同 - 它们由自定义文件操作处理程序实现。 对于stat ,大多数都没有大小,有些不能打开读取,其他不能写入。 有时它们被错误地实现(这是错误的,但它
1回复

UNIX lseek /读/写行为

如果我有一个大小为5的文件,并且我使用lseek寻求位置10,然后使用read从该位置读取1个字节,则read系统调用的返回值为0。我想知道lseek / read /的返回值。在以下情况下写入:如果我超过文件系统允许的最大文件大小,然后执行读取。 我们可以找这个位置/这是一个错误吗? 如果
1回复

写入预分配文件的特定部分

我目前正在尝试写入预分配文件的不同位置。 我首先这样分配文件: 大小是文件的总大小。 之后,我接收到适合该文件Y位置的XX大小的数据。 请记住,这部分过程是分叉的。 每个fork都有自己的唯一套接字,并打开自己的唯一文件句柄,写入文件,然后关闭文件。 反过来,这应
3回复

python寻求读取文件到特定行

我想从带有分隔词的行中读取一个很大的文件,最好的方法是什么? 可以说这是一个有5万行的文件 我想从包含43534的行开始读取此文件的行,对于大型文件,最有效的方法是什么?