一.字元編碼

1 以什麼編碼存的就要以什麼編碼取出
ps:記憶體固定使用unicode編碼,
我們可以控制的編碼是往硬碟存放或者基于網絡傳輸選擇編碼
2 資料是最先産生于記憶體中,是unicode格式,要想傳輸需要轉成bytes格式
#unicode----->encode(utf-8)------>bytes
拿到bytes,就可以往檔案記憶體放或者基于網絡傳輸
#bytes------>decode(gbk)------->unicode
3 python3中字元串被識别成unicode
python3中的字元串encode得到bytes
4 了解
python2中的字元串就bytes
python2中在字元串前加u,就是unicode
二。檔案處理
#open:
#1 會向作業系統發起系統調用,操作會打開一個檔案
#2 在python程式中會産生一個值指向作業系統打開的那個檔案,我們可以把該值指派一個變量
#回收資源
#1 f.close():一定要做,關閉作業系統打開的檔案,即回收作業系統的資源
#2 del f:沒必要做,因為在python程式運作完畢後,會自動清理與該程式有關的所有記憶體空間
#文本檔案:隻讀模式,檔案不存在報錯
# f=open(r'aaaa.py','r',encoding='utf-8')
# print(f.read())
# print(f.read
#
# line(),end='')
# print(f.readlines())
# print(f.readable())
# print(f.writable()) #False
# f.close()
#文本檔案:隻寫模式,檔案不存在則建立空檔案,檔案存在則清空
# f=open('new.txt','w',encoding='utf-8')
# f.write('1111111\n')
# f.writelines(['22222\n','3333\n','444444\n'])
# # print(f.writable())
# f.close()
#文本檔案:隻追加寫模式,檔案不存在則建立,檔案存在
# f=open('new_2','a',encoding='utf-8')
# print(f.readable())
# print(f.writable())
# f.write('33333\n')
# f.write('44444\n')
# f.writelines(['5555\n','6666\n'])
# f.close()
#rb
# f=open('aaaa.py','rb')
# print(f.read().decode('utf-8'))
# f=open('1.jpg','rb')
# data=f.read()
#wb
# f=open('2.jpg','wb')
# f.write(data)
# f=open('new_3.txt','wb')
# f.write('aaaaa\n'.encode('utf-8'))
#ab
# f=open('new_3.txt','ab')
# f.write('aaaaa\n'.encode('utf-8'))
三。檔案補充
#上下文管理
with open('aaaa.py','r',encoding='utf-8') as read_f,\
open('aaaa_new.py','w',encoding='utf-8') as write_f:
data=read_f.read()
write_f.write(data)
#循環取檔案每一行内容
with open('a.txt','r',encoding='utf-8') as f:
while True:
line=f.readline()
if not line:break
print(line,end='')
lines=f.readlines() #隻适用于小檔案
print(lines)
data=f.read()
print(type(data))
for line in f: #推薦使用
print(line,end='')
#檔案的修改
#方式一:隻适用于小檔案
import os
with open('a.txt','r',encoding='utf-8') as read_f,\
open('a.txt.swap','w',encoding='utf-8') as write_f:
data=read_f.read()
write_f.write(data.replace('alex_SB','alex_BSB'))
os.remove('a.txt')
os.rename('a.txt.swap','a.txt')
#方式二:
import os
with open('a.txt','r',encoding='utf-8') as read_f,\
open('a.txt.swap','w',encoding='utf-8') as write_f:
for line in read_f:
write_f.write(line.replace('alex_BSB','BB_alex_SB'))
os.remove('a.txt')
os.rename('a.txt.swap','a.txt')
轉載于:https://www.cnblogs.com/jmblog/p/7230612.html