【问题标题】:Python - Can I update my file using Insert mode?Python - 我可以使用插入模式更新我的文件吗?
【发布时间】:2022-01-18 22:55:42
【问题描述】:

基本上,我想插入文本并覆盖其他文本,例如当您单击键盘上的“插入”按钮时。那可能吗?我真的不想读完所有的行,我只想换一个字母。

之前的文件:

abcd

代码:

with open(file, INSERT) as f:
    f.seek(1)
    f.write('e')

之后的文件:

aecd

【问题讨论】:

    标签: python io


    【解决方案1】:

    如果你想完全按照你所说的去做,这应该可以解决问题:

    with open(file, 'r+') as f:
        f.seek(1)
        f.write('e')
    

    输出:

    aecd
    

    【讨论】:

    • 但不建议这样做,尤其是在使用可变字节大小的编码时。这可能会删除太多或不够。
    • 同意,但这就是它的要求
    • 评论是一般性的,供潜在的未来读者使用(如果您愿意,可以将其添加到答案中);)
    【解决方案2】:

    我找到了answer to a similar question from way back。这是我找到的答案的更新版本(根据您的需要量身定制):

    import os,mmap
    
    with open("test", "r+b") as f:
         mm = mmap.mmap(f.fileno(), 0)
         mm[1:2] = b"e"
         mm.close()
    

    输出

    aecd

    mmap documentaion has a similar example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      • 2015-06-09
      相关资源
      最近更新 更多