【问题标题】:How to find byte at specific index from file?如何从文件中查找特定索引处的字节?
【发布时间】:2018-02-19 13:00:09
【问题描述】:

我需要在我知道路径的文件中的特定位置打印字节。所以我以“rb”模式打开默认文件,然后我需要知道 15 位的字节是什么。有可能吗?

【问题讨论】:

  • docs.python.org/3/tutorial/… - 见本节末尾,关于seek
  • 寻求在特定位置设置指针,当我需要从该指针写入文件时使用它,但不是在我想读取时使用。
  • 不,seek 设置指针 - 用于读取和写入。
  • @Walucas 假设我有 20mb 文件,我需要知道位置 16 和 (size - 16) 位置的字节是什么,不要认为好方法是打印所有 20kk 字节,因为它需要快

标签: python python-3.x file indexing byte


【解决方案1】:

以下是使用seek 实现此目的的方法:

with open('my_file', 'rb') as f:
    f.seek(15)
    f.read(1)

【讨论】:

    【解决方案2】:

    您可以这样做的另一种方法是阅读整个文档并对其进行切片:

    先阅读文件内容:

    file = open('test.txt', 'rb')
    a = file.read()
    

    然后取所需的值:

    b = a[14]
    

    之后别忘了关闭文件:

    file.close()
    

    或者这样就自动关闭了:

    with open('test.txt', 'rb') as file:
    
        a = file.read()
        b = a[14] 
    

    【讨论】:

    • 使用上下文管理器,这样无论发生什么文件都会关闭。另外,我认为 OP 正在考虑大文件(请参阅问题 cmets),因此加载整个文件可能不是一个选项。
    猜你喜欢
    • 2017-02-11
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多