當前位置:首頁 » 編程語言 » python讀位元組

python讀位元組

發布時間: 2022-06-01 03:52:15

python對文本文件的讀有哪些方法,寫有哪些方法

1 文件讀取全文本操作
在一定場景下我們需要把文本全部內容讀取出來,進行處理。python提供三種函數讀取文件,分別是read readline readlines,
read():讀取文件的全部內容,加上參數可以指定讀取的字元。
readline():讀取文件的一行。
readlines():讀取文件的所有行到內存中。
不同場景下我們可以選擇不同函數對文件進行讀取。
1.1 方法一
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")
txt=file.read()
# 全文本的處理
file.close()
使用read函數將文件中的內容全部讀取,放在字元串變數txt中。這樣操作適合於文本較小,處理簡單的情況,當文件較大時,這種方式處理時不合適的。一次性讀取較大的文件到內存中,會耗費較多的時間和資源。這時候分批處理效果更好。
1.2 方法二
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")
txt= file.read(4)
# 文本的處理while txt != ""txt= file.read(4)
# 批量文本處理
file.close()
這種方法適合於分批處理文本信息,每次批量讀入,批量處理,不會對內存造成較大的壓力。
1.3 方法三
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")for line infile.readlines():
# 處理每一行數據
file.close()
這種處理方式適合處理以行為分割特點的文本,並且文本較小,因為這種處理方式需要一次性把文件所有內容讀取到內存中。
1.4 方法四
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r") # 這里的file時文件句柄for line infile:
# 處理每一行數據
file.close()
這種方式和方法三中的區別是分行讀入,逐行處理,不會一次性把文件所有內容都讀入到內存中,對一些大文件的處理是很有效的。
2 文件寫入文本操作
文件寫入有兩種寫入函數和一種輔助支持。
write():向文件中寫入一個字元或者位元組流
writelines():將一個元素全為字元串的列表寫入到文件中 需要注意的是,writelines寫入列表元素的時候會把列表元素的內容拼接到一起寫入,不會有換行和空格 。
seek(): 輔助寫入函數offset偏移量參數代表含義如下
0 - 文件開頭
1 - 當前位置
2 - 文件結尾
2.1 方法一
file_name = input("output.txt", "w+")
text= "hello world!"file_name.write(text)
file.close()
2.2 方法二
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.writelines(list)for line infile:
# 讀取寫入的數據,這時候發現是沒有任何內容的
file.close()
我們增加一行代碼就可以讀取到寫入的文件內容,利用seek()函數調整寫操作指針的位置,可以實現寫操作之後的正常讀取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 調整寫的指針到文件的開始位置for line infile:
# 讀取寫入的數據,這時候會讀出一行寫入的數據。
file.close()

② Python 讀取的位元組流轉換為字元串

不需要unpack,使用decode即可
例如我在一個文件中寫入'a\x00b\x00c\x00d\x00'
然後使用binary
stream打開文本,使用decode轉換即可
with
open(
'data'
,'rb'
)
as
f:
print(
f.read(
).decode(
'UTF-16'
)
)
你只要將讀取的位元組流轉換成str替換f.read(
)即可

③ Python對一行按照位元組位置讀取想要的字元,文件有多行,如何循環運行

a,b=(int(x.split()[-1])forxinopen('B').readlines()[:2])
open('C','w').writelines([s.replace(s[a,b],' '+s[a,b]+'')forsinopen('A').readlines()])

④ python 二進制讀取文件 如何知道真實的讀取位元組大小

read(100)讀取的結果保存在buff,buff是位元組類型

用len(buff)可以返回讀取位元組的實際長度。

⑤ Python如何讀寫文本文件

1.open使用open打開文件後一定要記得調用文件對象的close()方法。比如可以用try/finally語句來確保最後能關閉文件。
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
註:不能把open語句放在try塊里,因為當打開文件出現異常時,文件對象file_object無法執行close()方法。
2.讀文件讀文本文件input = open('data', 'r')
#第二個參數默認為r
input = open('data')

讀二進制文件input = open('data', 'rb')
讀取所有內容file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
讀固定位元組file_object = open('abinfile', 'rb')
try:
while True:
chunk = file_object.read(100)
if not chunk:
break
do_something_with(chunk)
finally:
file_object.close( )
讀每行list_of_all_the_lines = file_object.readlines( )
如果文件是文本文件,還可以直接遍歷文件對象獲取每行:
for line in file_object:
process line
3.寫文件寫文本文件output = open('data.txt', 'w')
寫二進制文件output = open('data.txt', 'wb')
追加寫文件output = open('data.txt', 'a')

output .write("\n都有是好人")

output .close( )

寫數據file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

⑥ python里open和read為什麼分別按行和位元組讀取

Python的open文件的讀取方式有以下幾種方法:
read([size]):讀取文件,如果傳了size參數,則讀取size位元組,否則讀取全部
readline([size]):讀取一行
readlines([size]):讀取完文件,返迴文件每一行所組成的列表

⑦ python 怎麼讀取網路zip位元組流,並保存到本地zip文件中

url="網路zip的地址"
path="你本地的地址"

req=urllib2.urlopen(url)
data=req.read()
withopen(path,"wb")aszip:
zip.write(data)
req.close()

如果解決了您的問題請採納!
如果未解決請繼續追問

⑧ python3 怎麼讀取位元組對象

1. python讀取二進制文件
讀取二進制文件並保存為Long型 (讀取原文件通過UltraEdit查看16進制編碼是「78 56 34 12」)
#以二進制的方式讀取文件
#coding: UTF-8
fileData = open('/home/ubuntu/staff_sample.dat','rb')

#讀取文件的前4個位元組 #將讀取的4個位元組轉換為long
data_id = struct.unpack("l",fileData.read(4))
print data_id

列印的結果是305419896。

⑨ python 讀一個位元組二進制(原數字用C char類型寫入 )現在要讀出並且轉化為int 類型在python里

一般用pack,unpack比較好。不過干嗎用一個名字呢?用c當然得到char,也就是作為string,干嗎不用b,B之類的呢。用imkow的不太好。其實unpack是其作用的。只是你的格式化字元有問題。
d=struct.unpack("b",data[0])[0]

下面是字元和unpack出來的數據類型的關系。
x pad byte no value
c char string of length 1
b signed char integer
B unsigned char integer
? _Bool bool (1)
h short integer
H unsigned short integer
i int integer
I unsigned int integer or long
l long integer
L unsigned long long
q long long long (2)
Q unsigned long long long (2)
f float float
d double float
s char[] string
p char[] string
P void * long

熱點內容
電視父母鎖屏密碼應該會是什麼 發布:2025-02-11 08:36:42 瀏覽:891
梅花適合用哪些植物進行配置 發布:2025-02-11 08:30:54 瀏覽:251
安卓手機如何像蘋果一樣彈窗 發布:2025-02-11 08:26:33 瀏覽:911
壓縮文件掃碼 發布:2025-02-11 08:20:55 瀏覽:257
小米5安卓70怎麼分屏 發布:2025-02-11 08:00:58 瀏覽:139
訪問二維碼 發布:2025-02-11 08:00:11 瀏覽:882
騰訊雲香港伺服器搭建 發布:2025-02-11 07:53:44 瀏覽:793
eclipsejava編譯器 發布:2025-02-11 07:53:09 瀏覽:494
生化危機7D加密破解 發布:2025-02-11 07:48:32 瀏覽:943
資料庫新增資料庫 發布:2025-02-11 07:40:45 瀏覽:198