Python
我有一個文本檔案 (.txt),我需要列印到 txt 的最后一個位元組。我該怎么做?當我不知道檔案的大小時。
uj5u.com熱心網友回復:
該檔案提供了一個 API,可用于解決該問題。您需要按順序執行以下操作:
- 以文本模式打開檔案,如此處的示例所示。
- 將檔案指標更改為最后一個位元組。這可以使用
seek檔案物件的 memeber 函式來實作。使用SEEK_END偏移量為的令牌-1在檔案結尾之前獲取一個位元組 read使用函式讀取一個位元組。- 列印那個位元組。
- 如果您在打開檔案時沒有使用背景關系管理器(
with關鍵字),則應close在退出程式之前使用關閉檔案
這里的技巧是使用該seek方法,該方法可用于指定相對于檔案末尾的偏移量。
uj5u.com熱心網友回復:
以下應該有效:
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:])
uj5u.com熱心網友回復:
您可以使用 seek 這樣做,這樣就無需將整個檔案讀入記憶體:
import os
with open('foo.txt', 'rb') as foo:
foo.seek(-1, os.SEEK_END)
b = foo.read()
print(b)
在這種情況下,最后一個字符是換行符,因此:
輸出:
b'\n'
筆記:
以二進制模式打開的檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/435093.html
