摘要:存儲元是存儲器中最小存儲單元,它的作用是用來存放一位二進制代碼或。所以在文件寫入后這種和的組合就固定下來,如果這種組合是用編碼寫入的,那么當你寫入一段漢字后,這種組合就表現為每個存儲元代表一個漢字。
很高興在我寫的文章下看到有人回復,然后我在測試回復中的代碼時居然發現個有趣的現象,并且得出下面的結論,請大家討論
先說結論r+模式(讀寫)下,如果文件內容已經存在了中文,當你試圖插入新內容時,必須使新內容的總體字節數是當前編碼下單個漢字占位字節的整數倍。否則讀取時會報錯。
補充:如果你把指針調到末尾則沒這個問題,也就是說可以在后面寫,但是在前面插入內容的話就會有上面的問題。
為了搞清楚最底層的工作原理,我專門看了幾篇相關文章,得出如下結論,我覺得可以了,不用再深究了,再往深了說就有點兒舍本逐末了。
首先,計算機存儲的都是二進制數字,也就是說是每8位一組的0和1的各種組合,當寫入磁盤后,在物理層面這種0和1的組合就固定下來,再往底層說就是磁盤表面會出現凹凸不平的代表0和1的存儲元。(存儲元是存儲器中最小存儲單元,它的作用是用來存放一位二進制代碼0或1。)
所以在文件寫入后這種0和1的組合就固定下來,如果這種組合是用UTF-8編碼寫入的,那么當你寫入一段漢字后,這種組合就表現為每24個存儲元代表一個漢字。
此時如果你想修改這段漢字的任何一個字,你必須修改相應的24個存儲元,如果你只修改8個存儲元(一個字節)或者16個存儲元(兩個字節),那么剩下的存儲元無法被當前編碼識別,也許碰巧會有某種編碼能夠識別這剩下的16個或者8個存儲元代表的組合,但這已經沒有意義。我還不知道有什么辦法能讓計算機在指定位置使用一種編碼,然后在另一個位置使用另外一種編碼。也許有……暫時還沒學到
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42574.html
摘要:如果該文件已存在,文件指針將會放在文件的結尾。運行結果以上是讀取文件的方法。為了輸出中文,我們還需要指定一個參數為,另外規定文件輸出的編碼。 上一篇文章:Python3網絡爬蟲實戰---30、解析庫的使用:PyQuery下一篇文章:Python3網絡爬蟲實戰---32、數據存儲:關系型數據庫存儲:MySQL 我們用解析器解析出數據之后,接下來的一步就是對數據進行存儲了,保存的形式可以...
摘要:可以對文件進行查看創建等功能,可以對文件內容進行添加修改刪除,且所使用到的函數在為,在同時支持和,但是在系列移除了函數。在及以后,又支持同時對多個文件的上下文進行管理,即原文鏈接 Python可以對文件進行查看、創建等功能,可以對文件內容進行添加、修改、刪除,且所使用到的函數在Python3.5.x為open,在Python2.7.x同時支持file和open,但是在3.5.x系列移除...
摘要:利用我們集成的目前世界上規模最大的人工分詞和詞性標注中文語料庫約含萬字訓練而成,模型標注能力強大。據說是最好的中文分詞組件,支持等多種語言。 總是看到別人用Python搞各種統計,前端菜鳥的我也來嘗試了一把。有各種語義分析庫在,一切好像并不是很復雜。不過Python剛開始看,估計代碼有點丑。 一、兩種中文分詞開發包 thulac (http://thulac.thunlp.org/)...
摘要:鍵盤輸入提供了內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。可以接收一個表達式作為輸入,并將運算結果返回。將返回該文件中包含的所有行。將寫入到文件中然后返回寫入的字符數。當處理一個文件對象時使用關鍵字是非常好的方式。 1. 鍵盤輸入 Python提供了 input() 內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。input 可以接收一個 Python 表達式作為輸入,...
摘要:它則是以行為單位返回字符串,也就是每次讀一行,依次循環,如果不限定,直到最后一個返回的是空字符串,意味著到文件末尾了。 讀文件 在某個文件夾下面建立了一個文件,名曰:130.txt,并且在里面輸入了如下內容: learn python http://qiwsir.github.io qiwsir@gmail.com f = open(123.txt) #打開已經存在的文件,此文件在當前...
閱讀 3195·2021-11-10 11:35
閱讀 1303·2019-08-30 13:20
閱讀 1124·2019-08-29 16:18
閱讀 2137·2019-08-26 13:54
閱讀 2163·2019-08-26 13:50
閱讀 964·2019-08-26 13:39
閱讀 2480·2019-08-26 12:08
閱讀 1956·2019-08-26 10:37