国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python文件操作(一看就懂)

這篇具有很好參考價值的文章主要介紹了python文件操作(一看就懂)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

歷史遺留問題

現(xiàn)在我們接著上文講,如果沒有看過我上篇文章的萌新朋友們可以先去看看,不然一會兒容易讀的你滿臉問號。python字符編碼

python文件操作(一看就懂)

現(xiàn)在我們來思考一個問題,我們在PyCharm里敲字符,這個字符應(yīng)當先存到內(nèi)存中去,而內(nèi)存里都存的是unicode格式的二進制,如果我們現(xiàn)在就把他存到硬盤里,理論上來說就可以把unicode格式的二進制直接存到硬盤里就行了,如果是這樣的話世界上就不會有亂碼的問題了,但是內(nèi)存的數(shù)據(jù)一旦斷電就馬上丟失了,而硬盤的數(shù)據(jù)是會永久保存的,這些硬盤里保存的有。

整個人類歷史的長河中留下了數(shù)量非常之龐大的老文件,在這些文件里有很多都是用GBK編碼、ASCII編碼、Shift_JIS、Euc-kr等等的。對于這些老文件咱們肯定不能全刪掉,如果能全部刪掉我們也不會遇到亂碼的問題了,因為所有文件都是unicode編碼,所以我們做不到秦始皇那樣,所以我們經(jīng)常遇到亂碼問題也是正常的,其原因就是殘留了太多的各種的文件。

現(xiàn)在我們電腦內(nèi)存里的編碼方法都被替換成unicode了,所以我們現(xiàn)在在程序的過程中輸入任何人類所用的字符都不會亂碼,但是在電腦上的老文件也是需要正常顯示的,所以unicode編碼除了需要兼容玩過字符以外還需要與原來每個國家的字符編碼有對應(yīng)關(guān)系,把新的unicode的二進制數(shù)與老的編碼表的二進制數(shù)一一對應(yīng)起來,就相當于unicode需要充當一個第三方中介。

我們在文件中存下的數(shù)據(jù)在內(nèi)存中存的是unicode的二進制數(shù),然后當我們要保存到硬盤的時候我們要將文件保存成GBK格式,然后就會按照unicode對應(yīng)上GBK的二進制編碼進行保存。當我們要讀取GBK格式的文件的時候也是照著以上步驟反過來,先看這個文件是以什么編碼格式保存的,然后對應(yīng)成unicode編碼的二進制數(shù),再根據(jù)unicode編碼顯示出來原來的字符。

如果我們在文件里輸入韓文字符在內(nèi)存里顯示是沒有問題的,當我們將它寫入硬盤的時候我們給它保存成GBK格式的文件就會有問題,因為GBK根本就沒有對應(yīng)韓文字符,所以有的平臺改寫昵稱是不允許使用除中文、指定符號、英文外的任何字符。如果我想將硬盤里存的GBK格式的文件轉(zhuǎn)化成Euc-kr格式,由于GBK編碼里面轉(zhuǎn)成了英文和中文,Euc-kr編碼里面又編定了英文和韓文,而unicode里面是包括所有國家的字符的,所以當我們把GBK格式的文件通過unicode轉(zhuǎn)成Euc-kr的時候,英文也是可以正常顯示的,但如果是中文的話就會亂碼,這是因為Euc-kr里面沒有中文的對應(yīng)關(guān)系,所以說以前的老字符編碼都是可以轉(zhuǎn)成unicode的,但是它們不能通過unicode進行相互轉(zhuǎn)換。

文件介紹

上面我們費了這么多的篇幅來講字符編碼,最終你只需要記住一個結(jié)論就行了:遇見亂碼就加文件頭,用python3加文件頭直接加,用python2加文件頭前面先加一個小寫u。

到底什么是文件呢?我們常說計算機有三層體系結(jié)構(gòu):最下層是硬件,硬件之上就是操作系統(tǒng),最上層就是用戶和應(yīng)用程序。

用戶和應(yīng)用程序如果想操作硬件就必須通過操作系統(tǒng),比如用戶或者應(yīng)用程序想要操作硬盤這個硬件就得操作操作系統(tǒng),而操作系統(tǒng)提供了一種虛擬的概念,那就是文件,或者叫做操作系統(tǒng)提供的操作硬盤功能。用戶或者應(yīng)用程序想要把數(shù)據(jù)存到硬盤里去就需要對操作系統(tǒng)的文件發(fā)起系統(tǒng)調(diào)用,操作系統(tǒng)會把用戶或者應(yīng)用程序?qū)ξ募恼{(diào)用功能轉(zhuǎn)成具體的硬盤操作,比如磁盤怎么轉(zhuǎn)、磁頭臂怎么擺,然后再把數(shù)據(jù)寫到硬盤我們平時修改的文件都是借助文本編譯器來實現(xiàn)修改文件的。

我們平時修改文件,都是借助文本編譯工具來實現(xiàn)修改文件的,比如Visual Studio Code、Visual Studio、PyCharm、Word等等。當然,圖片和視頻也可以修改,圖片對應(yīng)的工具就是PS,圖片數(shù)據(jù)就是16進制的,PS內(nèi)所有的工具、畫筆都是對顏色的修改,只不過是經(jīng)過封裝的而已。

打開文件

如果用代碼來操作文件python就為我們提供了一個名為 open() 的功能,這個open功能就是用來打開操作系統(tǒng)文件的,然后去用操作系統(tǒng)的文件去對應(yīng)具體的硬盤空間,所以以后我們用open功能打開一個文件,然后對文件進行操作,其實open就是通過操作這個文件然后轉(zhuǎn)換成具體的硬盤操作。

在講open之前open功能有兩大類模式我們需要掌握。

第一大類的模式就是控制文件讀寫操作的模式,在這類模式當中r模式就是控制只讀模式,w控制只寫模式,a是只追加寫模式。a和a都是只寫模式,其區(qū)別就在于w模式下如果一個文件里原本有數(shù)據(jù),w模式就會將其清空后再寫;a模式則會在原有的數(shù)據(jù)后追加寫,不清空原有數(shù)據(jù)。還有一個模式就是+模式,這個+不能夠單獨使用,他必須和r、w、a配合使用,也就是r+、w+、a+,+號會在他們原有的基礎(chǔ)上給你增加一個你原來沒有的功能,r+就是在只讀的基礎(chǔ)上增加了寫的功能;w+功能就是原來只能寫,有了加號以后就可以讀了;a+就是除了原來的追加寫以外也可以讀了。雖然上述的三種模式都是可讀可寫,但是在他們原有的基礎(chǔ)上增加的功能,所以受限于它原有的功能,受限在哪里我們后面再具體說。

第二類模式就是控制控制文件讀寫內(nèi)容的模式,這個模式控制的是你讀文件的時候讀的是什么格式的數(shù)據(jù)、寫文件又是寫的什么格式的數(shù)據(jù),如果讀寫的是文本格式的數(shù)據(jù)就是t模式,t模式是默認的模式,如果我們不指定這個模式他就會默認為t模式。

t模式是以字符串為單位的,說到這里我們來思考一下:我們?yōu)槭裁匆獙W(xué)文件處理?學(xué)習(xí)文件處理的目的其實就是把原本存放于內(nèi)存的數(shù)據(jù)保存到硬盤里面去。如果內(nèi)存里現(xiàn)在存的是一堆unicode數(shù)據(jù)存到硬盤,就是要把unicode數(shù)據(jù)encode一下才能存,不管是編碼成utf-8,還是編碼成gbk都是要編碼一下,總之不能把unicode存到硬盤,因為unicode只存于內(nèi)存,所以才要encode一下。

剛剛我們說的t模式的讀寫都是以字符串為單位的,而python3的字符串類型在內(nèi)存里都是unicode格式的。我們要把字符串存到硬盤就應(yīng)該把字符串編碼一下才能存到硬盤,所以以后我們遇到字符串類型直接把它想象成unicode就行了。

轉(zhuǎn)定義字符

用python操作文件的第一步就是打開文件,第二步就是具體操作文件(包括讀寫文件),最后一步就是關(guān)閉文件。

打開文件的方法就是在open()功能中傳一個參數(shù)再給它指定我們要打開的文件的路徑,示例代碼如下:

file = open(r'C:\trees\app.txt')

當我們將以上代碼放到PyCharm中后大家就會發(fā)現(xiàn)字符串中的\t、\a和其他的字符的顏色有些不同,那是因為在python的字符串中這個斜杠是具有轉(zhuǎn)義的作用的,例如\n就是換行符、\t是制表符、\a具有響鈴的作用。

python文件操作(一看就懂)

比如說我們運行以下代碼電腦就會出現(xiàn)響鈴:

print('/a')

除了以上的轉(zhuǎn)義符之外還有許多別的轉(zhuǎn)義符,我們下面列出了兩個表格為大家介紹:

Python格式化字符串的替代符以及含義

python文件操作(一看就懂)

Python的轉(zhuǎn)義字符及其含義

python文件操作(一看就懂)

??Final~

以上就是這篇文章的全部內(nèi)容了,希望本文《python文件操作》的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,bye~文章來源地址http://www.zghlxwxcb.cn/news/detail-435296.html

到了這里,關(guān)于python文件操作(一看就懂)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包