1. 程式人生 > 其它 >明瞳智控全新升級,助力終端裝置便捷上雲

明瞳智控全新升級,助力終端裝置便捷上雲

今日內容

  • 編碼與解碼以及字元編碼的應用
  • 檔案基本操作的流程
  • 檔案的操作預設
  • 操作檔案的方法

編碼與解碼

編碼

用通俗易懂的話來說就是把人能看懂的語言轉為計算機能看懂的語言
例:
	字元 >>>>>> unicode 或  unicode >>>>>>> 其他編碼
# 編碼     encode 
s = '時不待我'
print(s.encode('gbk'))
# 輸出結果  b'\xca\xb1\xb2\xbb\xb4\xfd\xce\xd2'

解碼

用通俗易懂的話來說就是把計算機能看懂的語言轉為能看懂人的語言
例:
	unicode >>>>>> 字元 或 其他編碼 >>>>>> unicode 
# 解碼
res = b'\xca\xb1\xb2\xbb\xb4\xfd\xce\xd2'
print(res.decode('gbk'))  # 時不待我
# b 表示該資料為bytes型別 bytes可以看成是二進位制

亂碼

就是解碼和編碼的字元編碼表不是同一種 eg:
    s = '時不待我'
    s1 = s.s.encode('gbk')
    print(s1)   # 編碼
    s2 = s1.decode('euc_kr')
    print(s2)   # 解碼,但是亂碼
	s3 = s1.decode('gbk') # 解碼正確 

python直譯器層面

python2直譯器預設的編碼是ASCII碼
    	1.檔案頭:必須寫在檔案的最上方 告訴直譯器使用指定的編碼
            # coding:utf8
            # -*- coding:utf8 -*-  美化寫法
        2.字元字首:在使用python2直譯器的環境下定義字串習慣在前面加u
            name = u'你好啊'
    python3直譯器預設的編碼是utf8

檔案基本操作流程

檔案操作簡介

# 什麼是檔案?
	作業系統暴露給使用者可以直接操作硬碟的快捷方式	
# 程式碼操作檔案的流程
	1.開啟檔案、建立檔案
    2.編輯檔案內容
    3.儲存檔案內容
    4.關閉檔案
# 基本語法結構
	# 第一種 
    	f = open()
        f.close()
        # 檔案開啟需要手動關閉
    # 第二種
    	with open() as f:
            pass
        # 檔案開啟執行完後會自動關閉
    # 1.使用關鍵字開啟
    '''寫路徑為了防止特殊符號,直接加r'''
    # 相對路徑:可以理解為同級目錄下:
    # 絕對路徑:直接寫檔案的地址 eg: D:\...\...\..
    open(r'1.txt')
    open(r'D:\User\Python\1.txt')
    res = open(r'1.txt', 'r', encoding='utf8')
    # 模式
    	open(檔案的路徑,檔案的操作模式,檔案的編碼)
        1.檔案的路徑是必須要寫的
        2.檔案的操作模式、檔案的編碼有時候不用寫
    # print(res.read())  # 讀取檔案內容
   	# res.close()  # 關閉檔案
    '''上述程式碼都需要在執行完新增close(),close()容易忘記'''
    with open(r'1.txt','r',encoding='gbk') as f:
    print(f.read())

檔案的讀寫模式

r	read	只讀模式:只能讀不能寫
w	write	只寫模式:只能寫不能讀
a   append   只追加模式:在檔案末尾新增內容
    
# r模式
# 路徑不存在:直接報錯
# with open(r'b.txt', 'r', encoding='utf8') as f1:
#     # pass  (推薦)補全語法結構 本身沒有任何功能
#     # ...  (不推薦)補全語法結構 本身沒有任何功能
#     pass
# 路徑存在:正常開啟檔案並等待內容讀取
with open(r'a.txt', 'r', encoding='utf8') as f1:
    # print(f1.read())  # 一次性讀取檔案內所有的內容
    f1.write('python是最牛逼的語言!!!')  # 報錯
"""
able在英語中大部分情況下表示的是 具備...的能力
    readable    具備讀的能力
    writable    具備寫的能力
    ...
"""

# w模式
# 路徑不存在:自動建立檔案
# with open(r'b.txt', 'w', encoding='utf8') as f1:
    # pass  (推薦)補全語法結構 本身沒有任何功能
    # ...  (不推薦)補全語法結構 本身沒有任何功能
    # pass
# 路徑存在:先清空檔案內容 之後再寫入資料
with open(r'a.txt', 'w', encoding='utf8') as f1:
    f1.write('你們是我見過的最優秀一批學生1\n')  # 寫入檔案內
    f1.write('你們是我見過的最優秀一批學生2\r')  # 寫入檔案內容
    f1.write('你們是我見過的最優秀一批學生3\n')  # 寫入檔案內容
with open(r'1.txt', 'r', encoding='utf8') as f1:
    print(f1.read())
"""
換行  最早的時候:\r\n
為了節省空間支援一個字元 根據作業系統的不同可能有所區別
    \n 、 \r
"""

# a模式
# 路徑不存在:自動建立檔案
# with open(r'c.txt', 'a', encoding='utf8') as f1:
#     pass
# 路徑存在:不會清空檔案內容 而是在檔案末尾等待新內容的新增
# with open(r'a.txt', 'a', encoding='utf8') as f1:
    # f1.write('哈哈哈哈或或或或或')
    # print(f1.read())

檔案的操作模式

t模式		
	文字模式 是預設的模式
    	r	rt
        w	wt
        a	at
    1.該模式只能操作文字檔案
    2.該模式必須要指定encoding引數
    3.該模式讀寫都是以字串為最小單位
	
b模式    
	二進位制模式  可以操作任意型別的檔案
    	rb  不能省略b
        wb  不能省略b
        ab  不能省略b
    1.該模式可以操作任意型別的檔案
    2.該模式不需要指定encoding引數
    3.該模式讀寫都是以bytes型別為最小單位

檔案的內建方法

read()  # 一次性讀取檔案內容
	1.執行完之後游標在檔案末尾 繼續讀取沒有內容
    2.當檔案內容特別大的時候 容易造成記憶體溢位(滿了)
readline()  # 一次只讀一行內容
readlines()  # 結果是一個列表 裡面的各個元素是檔案的一行行內容
readable()  # 判斷當前檔案是否可讀
支援for迴圈  # 一行行讀取檔案內容(推薦使用)  記憶體中同一時刻只會有一行內容
write()  # 寫入檔案內容(字串或者bytes型別)
writelines()  # 可以將列表中多個元素寫入檔案
writable()  # 判斷檔案是否可寫
flush()  # 相當於主動按了ctrl+s(儲存)