python3的字節(jié)流save方法用于在內(nèi)存中以字節(jié)流形式保存文件。它接受一個(gè)必需的參數(shù)filename,這是要保存的文件名。可選參數(shù)append和exclusive表示除“w”模式外還應(yīng)該使用什么樣的文件訪問(wèn)模式。此方法不會(huì)關(guān)閉文件,因此如果不強(qiáng)制關(guān)閉,則文件將保留打開(kāi)狀態(tài)。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),衡南企業(yè)網(wǎng)站建設(shè),衡南品牌網(wǎng)站建設(shè),網(wǎng)站定制,衡南網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,衡南網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1 文件讀取全文本操作
在一定場(chǎng)景下我們需要把文本全部?jī)?nèi)容讀取出來(lái),進(jìn)行處理。python提供三種函數(shù)讀取文件,分別是read readline readlines,
read():讀取文件的全部?jī)?nèi)容,加上參數(shù)可以指定讀取的字符。
readline():讀取文件的一行。
readlines():讀取文件的所有行到內(nèi)存中。
不同場(chǎng)景下我們可以選擇不同函數(shù)對(duì)文件進(jìn)行讀取。
1.1 方法一
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱(chēng)")
file= open(file_name, "r")
txt=file.read()
# 全文本的處理
file.close()
使用read函數(shù)將文件中的內(nèi)容全部讀取,放在字符串變量txt中。這樣操作適合于文本較小,處理簡(jiǎn)單的情況,當(dāng)文件較大時(shí),這種方式處理時(shí)不合適的。一次性讀取較大的文件到內(nèi)存中,會(huì)耗費(fèi)較多的時(shí)間和資源。這時(shí)候分批處理效果更好。
1.2 方法二
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱(chēng)")
file= open(file_name, "r")
txt= file.read(4)
# 文本的處理while txt != ""txt= file.read(4)
# 批量文本處理
file.close()
這種方法適合于分批處理文本信息,每次批量讀入,批量處理,不會(huì)對(duì)內(nèi)存造成較大的壓力。
1.3 方法三
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱(chēng)")
file= open(file_name, "r")for line infile.readlines():
# 處理每一行數(shù)據(jù)
file.close()
這種處理方式適合處理以行為分割特點(diǎn)的文本,并且文本較小,因?yàn)檫@種處理方式需要一次性把文件所有內(nèi)容讀取到內(nèi)存中。
1.4 方法四
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱(chēng)")
file= open(file_name, "r") # 這里的file時(shí)文件句柄for line infile:
# 處理每一行數(shù)據(jù)
file.close()
這種方式和方法三中的區(qū)別是分行讀入,逐行處理,不會(huì)一次性把文件所有內(nèi)容都讀入到內(nèi)存中,對(duì)一些大文件的處理是很有效的。
2 文件寫(xiě)入文本操作
文件寫(xiě)入有兩種寫(xiě)入函數(shù)和一種輔助支持。
write():向文件中寫(xiě)入一個(gè)字符或者字節(jié)流
writelines():將一個(gè)元素全為字符串的列表寫(xiě)入到文件中 需要注意的是,writelines寫(xiě)入列表元素的時(shí)候會(huì)把列表元素的內(nèi)容拼接到一起寫(xiě)入,不會(huì)有換行和空格 。
seek(): 輔助寫(xiě)入函數(shù)offset偏移量參數(shù)代表含義如下
0 - 文件開(kāi)頭
1 - 當(dāng)前位置
2 - 文件結(jié)尾
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:
# 讀取寫(xiě)入的數(shù)據(jù),這時(shí)候發(fā)現(xiàn)是沒(méi)有任何內(nèi)容的
file.close()
我們?cè)黾右恍写a就可以讀取到寫(xiě)入的文件內(nèi)容,利用seek()函數(shù)調(diào)整寫(xiě)操作指針的位置,可以實(shí)現(xiàn)寫(xiě)操作之后的正常讀取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 調(diào)整寫(xiě)的指針到文件的開(kāi)始位置for line infile:
# 讀取寫(xiě)入的數(shù)據(jù),這時(shí)候會(huì)讀出一行寫(xiě)入的數(shù)據(jù)。
file.close()
官方解釋?zhuān)篒nterpret strings as packed binary data.
具體作用就是用來(lái)處理字節(jié)流的,類(lèi)似于c語(yǔ)言的struct.
struct模塊中最重要的三個(gè)函數(shù):
格式的使用:
二進(jìn)制文件讀寫(xiě):
python之struct詳解
struct
python
數(shù)學(xué)相關(guān)
abs(a) : 求取絕對(duì)值。abs(-1)
max(list) : 求取list最大值。max([1,2,3])
min(list) : 求取list最小值。min([1,2,3])
sum(list) : 求取list元素的和。 sum([1,2,3]) 6
sorted(list) : 排序,返回排序后的list。
len(list) : list長(zhǎng)度,len([1,2,3])
divmod(a,b): 獲取商和余數(shù)。 divmod(5,2) (2,1)
pow(a,b) : 獲取乘方數(shù)。pow(2,3) 8
round(a,b) : 獲取指定位數(shù)的小數(shù)。a代表浮點(diǎn)數(shù),b代表要保留的位數(shù)。round(3.1415926,2) 3.14
range(a[,b]) : 生成一個(gè)a到b的數(shù)組,左閉右開(kāi)。range(1,10) [1,2,3,4,5,6,7,8,9]
類(lèi)型轉(zhuǎn)換
int(str) : 轉(zhuǎn)換為int型。int('1') 1
float(int/str) : 將int型或字符型轉(zhuǎn)換為浮點(diǎn)型。float('1') 1.0
str(int) : 轉(zhuǎn)換為字符型。str(1) '1'
bool(int) : 轉(zhuǎn)換為布爾類(lèi)型。 str(0) False str(None) False
bytes(str,code) : 接收一個(gè)字符串,與所要編碼的格式,返回一個(gè)字節(jié)流類(lèi)型。bytes('abc', 'utf-8') b'abc' bytes(u'爬蟲(chóng)', 'utf-8') b'xe7x88xacxe8x99xab'
list(iterable) : 轉(zhuǎn)換為list。 list((1,2,3)) [1,2,3]
iter(iterable): 返回一個(gè)可迭代的對(duì)象。 iter([1,2,3]) list_iterator object at 0x0000000003813B00
dict(iterable) : 轉(zhuǎn)換為dict。 dict([('a', 1), ('b', 2), ('c', 3)]) {'a':1, 'b':2, 'c':3}
enumerate(iterable) : 返回一個(gè)枚舉對(duì)象。
tuple(iterable) : 轉(zhuǎn)換為tuple。 tuple([1,2,3]) (1,2,3)
set(iterable) : 轉(zhuǎn)換為set。 set([1,4,2,4,3,5]) {1,2,3,4,5} set({1:'a',2:'b',3:'c'}) {1,2,3}
hex(int) : 轉(zhuǎn)換為16進(jìn)制。hex(1024) '0x400'
oct(int) : 轉(zhuǎn)換為8進(jìn)制。 oct(1024) '0o2000'
bin(int) : 轉(zhuǎn)換為2進(jìn)制。 bin(1024) '0b10000000000'
chr(int) : 轉(zhuǎn)換數(shù)字為相應(yīng)ASCI碼字符。 chr(65) 'A'
ord(str) : 轉(zhuǎn)換ASCI字符為相應(yīng)的數(shù)字。 ord('A') 65
相關(guān)操作
eval****() : 執(zhí)行一個(gè)表達(dá)式,或字符串作為運(yùn)算。 eval('1+1') 2
exec() : 執(zhí)行python語(yǔ)句。 exec('print("Python")') Python
filter(func, iterable) : 通過(guò)判斷函數(shù)fun,篩選符合條件的元素。 filter(lambda x: x3, [1,2,3,4,5,6]) filter object at 0x0000000003813828
map(func, *iterable) : 將func用于每個(gè)iterable對(duì)象。 map(lambda a,b: a+b, [1,2,3,4], [5,6,7]) [6,8,10]
zip(*iterable) : 將iterable分組合并。返回一個(gè)zip對(duì)象。 list(zip([1,2,3],[4,5,6])) [(1, 4), (2, 5), (3, 6)]
type():返回一個(gè)對(duì)象的類(lèi)型。
id(): 返回一個(gè)對(duì)象的唯一標(biāo)識(shí)值。
hash(object):返回一個(gè)對(duì)象的hash值,具有相同值的object具有相同的hash值。 hash('python') 7070808359261009780
help():調(diào)用系統(tǒng)內(nèi)置的幫助系統(tǒng)。
isinstance():判斷一個(gè)對(duì)象是否為該類(lèi)的一個(gè)實(shí)例。
issubclass():判斷一個(gè)類(lèi)是否為另一個(gè)類(lèi)的子類(lèi)。
globals() : 返回當(dāng)前全局變量的字典。
next(iterator[, default]) : 接收一個(gè)迭代器,返回迭代器中的數(shù)值,如果設(shè)置了default,則當(dāng)?shù)髦械脑乇闅v后,輸出default內(nèi)容。
reversed(sequence) : 生成一個(gè)反轉(zhuǎn)序列的迭代器。 reversed('abc') ['c','b','a']
我認(rèn)為,它指的是客戶(hù)端向網(wǎng)絡(luò)服務(wù)器發(fā)起url請(qǐng)求中,將被傳遞給服務(wù)接口程序處理所必需的一些參數(shù),比如用戶(hù)id、會(huì)話id、用戶(hù)名、密碼等等。
不需要unpack,使用decode即可
例如我在一個(gè)文件中寫(xiě)入'a\x00b\x00c\x00d\x00'
然后使用binary
stream打開(kāi)文本,使用decode轉(zhuǎn)換即可
with
open(
'data'
,'rb'
)
as
f:
print(
f.read(
).decode(
'UTF-16'
)
)
你只要將讀取的字節(jié)流轉(zhuǎn)換成str替換f.read(
)即可
標(biāo)題名稱(chēng):python字節(jié)流函數(shù) python 字節(jié)流和字符串
標(biāo)題路徑:http://aaarwkj.com/article18/docphdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、、手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管、企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容