如何打印文件 .txt 的最后一个字节

发布于 2025-01-11 06:51:40 字数 93 浏览 0 评论 0 原文

python

我有一个文本文件 (.txt),我需要打印到 txt 的最后一个字节。 我该怎么做? 当我不知道文档的大小时。

python

I have a text file (.txt) and I need to print to the last byte of the txt.
how I do that ?
When I do not know the size of the document.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

转角预定愛 2025-01-18 06:51:41

文档 提供了一个 API,可用于解决该问题。您需要按顺序执行以下操作:

  1. 以文本模式打开文件,如示例 此处
  2. 将文件指针更改为最后一个字节。这可以使用 seek 来实现 文件对象的成员函数。使用偏移量为 -1SEEK_END 标记在文件末尾之前获取一个字节
  3. 使用 读取函数。
  4. 打印该字节。
  5. 如果打开文件时未使用上下文管理器(with 关键字),则应使用 close 在退出程序之前关闭文件

这里的技巧是使用seek方法,可用于指定相对于末尾的偏移量 文件。

The documenation provides an API, that can be used to solve that problem. You will need to do the following things in order:

  1. Open the file in text mode like in the example here.
  2. Change the file pointer to the last byte. This can be achieved using the seek memeber function of the file object. Use the SEEK_END token with an offset of -1 to get one byte before the end of the file
  3. Read one byte with the read function.
  4. Print that byte.
  5. If you did not use a context manager (with keyword) while opening the file, you should use close to close the file before exiting the program

The trick here is to use the seek method, that can be used to specify an offset relative to the end of the file.

反差帅 2025-01-18 06:51:41

以下内容应该有效:

with open("text.txt") as file:
    text = outfile.read()
    byte_array = bytearray(text, "utf8")

    print(byte_array[-1:])

如果您需要二进制表示

with open("text.txt") as file:
    text = outfile.read()
    byte_array = bytearray(text, "utf8")

    binary_byte_list = []

    for byte in byte_array:
        binary_representation = bin(byte)
        binary_byte_list.append(binary_representation)

    print(binary_byte_list[-1:])

The following should work:

with open("text.txt") as file:
    text = outfile.read()
    byte_array = bytearray(text, "utf8")

    print(byte_array[-1:])

If you need the binary representation

with open("text.txt") as file:
    text = outfile.read()
    byte_array = bytearray(text, "utf8")

    binary_byte_list = []

    for byte in byte_array:
        binary_representation = bin(byte)
        binary_byte_list.append(binary_representation)

    print(binary_byte_list[-1:])
桃扇骨 2025-01-18 06:51:41

您可以使用seek 这样做,这样就无需将整个文件读入内存:

import os
with open('foo.txt', 'rb') as foo:
    foo.seek(-1, os.SEEK_END)
    b = foo.read()
    print(b)

在这种情况下,最后一个字符是换行符,因此:

输出:

b'\n'

注意:

文件以二进制模式打开

You could do it like this using seek which obviates the need to read the entire file into memory:

import os
with open('foo.txt', 'rb') as foo:
    foo.seek(-1, os.SEEK_END)
    b = foo.read()
    print(b)

In this case the last character is newline and therefore:

Output:

b'\n'

Note:

File opened in binary mode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文