日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字符编码和文件处理

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符编码和文件处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符編碼

1、知識儲備
cpu
內存
硬盤
2 文本編輯器存原理
結論:在編寫py的程序的時候,是沒有語法的限制的,編輯的結果
跟編寫一個普通的文本文件是沒有任何區別,
只有把py程序交給python解釋并且在運行的第三個階段才有了
語言意義
3 python解釋器執行python程序的原理
python3 test.py
第一階段:先啟動python解釋器這個軟件
第二階段:把test.py文件的內容讀入內存
第三階段:解釋執行,識別語法

?

4、什么是字符編碼:人類的的字符翻譯成計算機能讀懂的語言(二進制)
人類的字符----》翻譯-------》數字
翻譯的過程必須遵循一個標準:字符與數字一一對應的關系
這個標準稱之為字符編碼表

ASCII
8bit=1bytes,一個英文字符占用1字節

GBK
16bit=2bytes ,2個字節表示一個中文字符

unicode(內存中固定的編碼):
16bit=2bytes,2個字節表示一個字符

utf-8:Unicode Transformation Format(unicode的一種轉換的版本)
3bytes表示一個中文字符


保證不亂碼的核心就是:
文件是以什么編碼存的,就必須以該讀取
強調:我們能控制的只是存到硬盤上的編碼


python3解釋器:默認utf-8編碼
python2解釋器:默認ascii編碼

文件頭的作用:#coding:utf-8 是告訴python解釋器,用我指定的字符編碼

三:執行python程序第三個階段發生的事
會識別python語法,定義的字符串類型又涉及到字符編碼的概念
x='上' #x=str('上')
python2:
字符串分為兩種形式:
x='上' #python2的str類型會按照文件頭指定的編碼來存‘上’

python3:
str:被存成了unicode
bytes:字節等同于二進制看

四:轉換
unicode---編碼encode--->gbk
gbk------->解碼decode---》unicode


文件處理:

默認的是t模式,t不能單獨使用,必須是rt,wt,at。
1、打開文件
f=open(r'文件的路徑’,mode='打開文件的模式’,encoding='操作文件的字符編碼’)
f=open(r'a.txt',mode='r')

2.讀/寫:
data=f.read()


3.關閉文件
f.close() #回收操作系統的資源。

?

文件操作的模式有三種:r,w,a
f=open('a.txt') 默認打開文件的模式是rt模式,r代表只讀,t代表文本文件

r模式:只讀模式,當文件不存在時會報錯

f.open('a.txt',moed='r',encoding='utf-8')

print(f.read()) ? ?#讀出來是字符串為單位

?

with open('a.txt',encoding='utf-8') as f:

for line in f:

?print(line,end='') ? ? ?#優先使用此方法,循環讀取每一行的內容。

?

for line in f.readlines()

print(line,end='') ? ?#循環文件不建議用此方法,因為在文件過大的情況下有可能會撐爆內存。

?

w模式:只寫模式,當文件存在時則清空,當文件不存在時則創建新的空文檔

f=open('a.txt',mode='w',encoding='utf-8')

f.write('123456\n')

?

f.writelines(['1111111\n','222222\n','3333333\n']) ? ? ?#相當于for循環

f.close()


a模式:只追加寫模式,當文件不存在時,創建文件,當文件存在時,光標直接跑到文件末尾。

f=open('b.log',mode='a',encoding='utf-8')

print(f.writable())

f.readlines() ? ?#報錯

f.write('66666\n')

f.close()

?

轉載于:https://www.cnblogs.com/gaobei/articles/8630643.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的字符编码和文件处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。