python - 只修改文件的特定部分

标签 python

我有一个应该读取文件的 python 脚本。问题是该文件非常大,因此为了提高效率,我决定我的脚本应该只从第 650000 行开始读取,因为前一行不包含相关信息。

有没有办法只修改第 650000 行直到 eof,例如,如果我 read() 这个文件只会出现那些特定的行?

最佳答案

文件不是面向行的,它们是字节 block 。

除非读入数据,否则无法计算出前 650,000 行由多少字节组成,因此您必须这样做才能跳过它们。

可以从某个偏移量开始修改文件,但该偏移量将以字节为单位,这是文件使用的寻址单元。

跳线很容易完成:

with open("myfile.txt", "w+t") as f:
  for i in xrange(650000):
    f.readline() # Read a line and throw it away
  f.write("hello")

这将截断文件,以便在 hello 之后没有数据(当然,它之前有 650,000 行)。

关于python - 只修改文件的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37587348/

相关文章:

python - scipy 优化最小化函数不强制约束

python - 如何保存Python网页抓取结果

python - 使用 Pandas 的赋值和 Lambda 函数向每行添加 Rand

python - apply 函数对分组的 pandas DataFrame 中的前 2 组执行两次

python - 如何在子类中使用描述符的装饰器

python - 子图上的图例和散点图例

python - 如何避免长链的 try 和 except 语句?

python - 使用 Python Beautifulsoup 抓取 html 文本和图像链接

python - 在 Python 中的 set 语句之后使用 split

python - 使用 smtplib 发送文件时标准输出格式发生变化 - python2.7