1.模式介紹
t:1、讀寫都是以字串(unicode)為單位
2、只能針對文字檔案
3、必須指定字元編碼,即必須指定encoding引數
b:binary模式
1、讀寫都是以bytes為單位
2、可以針對所有檔案
3、一定不能指定字元編碼,即一定不能指定encoding引數
總結:文字格式也可以使用b模式1、在操作純文字檔案方面t模式幫我們省去了編碼與解碼的環節,b模式則需要手動編碼與解碼,所以此時t模式更為方便
2
with檔案的拷貝open(r'd.txt',mode='rb') as
f:res=f.read() # d檔案中的內容的utf-8編碼下的二進位制
print(res,type(res))
# b'\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88a'
<
class
'bytes'
>
print(res.decode('utf-8'))
# 將內容重新以utf-8的格式 # 解碼
src_file=input('原始檔路徑》: ').strip()檔案的迴圈讀取dst_file=input('原始檔路徑》: ').strip()
with open(r'{}'.format(src_file),mode='rb') as f1,\
open(r'{}'.format(dst_file),mode='wb') as f2:
# res=f1.read() # 記憶體占用過大
# f2.write(res)
for line in f1:
f2.write(line)
# 使用for迴圈會降低記憶體占用
1.while迴圈(可以控制自己每次讀取的資料量)
2.for迴圈(以行為單位,一行的內容過長時會導致一次性讀入記憶體的資料過大)
withopen(r'g.txt',mode='rt',encoding='utf-8') as
f:for
line
inf:
print(line)
with兩者效果相同open(r'g.txt',mode='rb') as
f:for
line
inf:
print(line.decode('utf-8'))
python讀取檔案用b模式讀取
f open aaa rb 返回的是位元組 字串編碼 python中所有的字串編碼為unicode,如果從乙個檔案讀取字串,那麼該字串的編碼就是該檔案的編碼。f.tell 返回當前的游標位置。以位元組計算 返回位子引數例如 1 f open bbb r encoding gbk 2 print f....
Golang 專案配置檔案讀取之 viper 實踐
在我們做乙個工程化專案的時候,經常涉及到配置檔案的讀取,viper 包很好地滿足這一需求,而且在 golang 生態中是流行度最高的。匯入方式 import github.com spf13 viper 這裡分享下我對 viper 包的使用關鍵實踐 接下來在工程入口處引用上面這個配置包的 init ...
PE結構讀取之DOS Header
有人說pe結構很重要,也有人說不重要。不同的人站在不同的角度有不同的看法。而我對pe結構僅僅是想有所了解,於是就有了下面一系列文章的出現。pe檔案中dos header的具體結構如下所示 下面的定義在winnt.h檔案中,這個檔案需要安裝程式設計環境,至少我將vc 6.0解除安裝後就找不到這個檔案了...