python讀取流
❶ python怎麼讀取流媒體WMV頭文件信息
一系列的音頻數據的幀,在文件的中間位置,個數由文件大小和幀長決定;
每個幀都以FFF開頭,的長度可能不固定,也可能固定,由位率bitrate決定;
每個幀又分為幀頭和數據實體兩部分;幀頭記錄了mp3 的位率,采樣率,版本等信息,每個幀之間相互獨立 。
❷ Python如何讀取指定程序的上傳流量和下載流量,並進行調節
在沒有擴展模塊支持下,Python不能完成。
❸ 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怎麼處理二進制流
可以的,二進制是計算機內的表示方法,處理二進制數據是最基本的能力。
如果是二進制字元串轉十進制:
>>> x = '10101010'
>>> int(x, 2)
170
如果是從文件或網路中獲取的數據,要知道某一位是0還是1的話,獲取的數據可以按字元讀取,由於一個字元由8位二進製表示,分別讀取1到8位的二進制值就可以了:
>>> get_char_bit = lambda char, n: (char >> (8-n)) & 1 # 從高到低分別為第1~8位
>>> data = b'ab' # 在python3中字元串默認是unicode,所以加上b前綴兼容
>>> # 在python3中按字元讀取byte字元串是數字,而python2讀出來的卻是字元,但bytearray是一致的都是數字
>>> data = bytearray(data)
>>> result = []
>>> for char in data:
for i in range(1, 9):
result.append(get_char_bit(char, i))
>>> result
[0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0]
❺ 如何用python處理從網路socket讀取出來的二進制數據流
看看標准模塊 struct, 可以用 struct.unpack 來解二進制數據
❻ 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 怎麼讀取網路zip位元組流,並保存到本地zip文件中
url="網路zip的地址"
path="你本地的地址"
req=urllib2.urlopen(url)
data=req.read()
withopen(path,"wb")aszip:
zip.write(data)
req.close()
如果解決了您的問題請採納!
如果未解決請繼續追問