天天看點

Python day7

一.字元編碼

Python day7
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