『壹』 Python中怎麼修改文件中的某一行內容。(文件很大,不能讀取全部內容)
摘要:Python環境下文件的讀取問題,請參見拙文Python基礎——文件這是一道著名的Python面試題,考察的問題是,Python讀取大文件和一般規模的文件時的區別,也即哪些介面不適合讀取大文件。1.read()介面的問題f=open(filename,'rb')f.read()我們來讀取1個nginx的日至文件,規模為3Gb大小。read()方法執行的操作,是一次性全部讀入內存,顯然會造成:MemoryError...也即會發生內存溢出。2.解決方案:轉換介面(1)readl
Python 環境下文件的讀取問題,請參見拙文 Python 基礎 —— 文件
這是一道著名的 Python 面試題,考察的問題是,Python 讀取大文件和一般規模的文件時的區別,也即哪些介面不適合讀取大文件。
1. read() 介面的問題
f = open(filename, 'rb') f.read()我們來讀取 1 個 nginx 的日至文件,規模為 3Gb 大小。read() 方法執行的操作,是一次性全部讀入內存,顯然會造成:
MemoryError ...也即會發生內存溢出。
2. 解決方案:轉換介面3. 真正 Pythonic 的方法
真正 Pythonci 的方法,使用 with 結構:
with open(filename, 'rb') as f: for line in f: <do something with the line>對可迭代對象 f,進行迭代遍歷:for line in f,會自動地使用緩沖IO(buffered IO)以及內存管理,而不必擔心任何大文件的問題。
There should be one – and preferably only one – obvious way to do it.
(1)readlines() :讀取全部的行,構成一個 list,實踐表明還是會造成內存的問題;
for line in f.reanlines(): ...(2)readline():每次讀取一行,
while True: line = f.readline() if not line: break(3)read(1024):重載,指定每次讀取的長度
while True: block = f.read(1024) if not block: break然後在循環裡面替換就好了
『貳』 KML如何製作表格
你好!
KML可以製作表抄格,基本途徑有兩個,前提都是要在轉換成純數據的基礎上。實際上這個問題的技巧也就在如何轉移成純數據上。基本思路是:通過直接修改擴展名將KML文件變成HTML文件,通過瀏覽器強行打開轉換後得到的文件(目的是過濾掉程序代碼),這時得到的就是純數據了。拷貝,通過文本編輯器或HTML編輯器,就可以輕松轉換成表格了。
——如何使用字處理程序的批處理功能,就不用介紹了吧。
打字不易,採納哦!
『叄』 Python文件操作,看這篇就足夠!
文件的存儲方式
在計算機中,文件是以二進制的方式保存在磁碟上的文本文件和二進制文件
文本文件可以使用文本編輯軟體查看本質上還是二進制文件
二進制文件保存的內容不是給人直接閱讀的,而是提供給其她軟體使用的二進制文件不能使用文件編輯軟體查看
文件基本操作
在計算機中要操作文件一共包含三個步驟:1.打開文件2.讀、寫文件
讀 將文件內容讀入內容寫 將內存內容寫入文件
模式描述
t文本模式 (默認)。
x寫模式,新建一個文件,如果該文件已存在則會報錯。
b二進制模式。
+打開一個文件進行更新(可讀可寫)。
U通用換行模式(不推薦)。
r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。一般用於非文本文件如圖片等。
r+打開一個文件用於讀寫。文件指針將會放在文件的開頭。
rb+以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。一般用於非文本文件如圖片等。
w打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb以二進制格式打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用於非文本文件如圖片等。
w+打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb+以二進制格式打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用於非文本文件如圖片等。
a打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
ab以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
a+打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
ab+以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。
文件打開模式有很多,但是我們實際用到的就只有六種。
我們總結一下主要用到的是下面六種
模式可做操作若文件不存在是否覆蓋文件原來內容
r只讀報錯——
r+可讀、可寫報錯是
w只寫創建是
w+可讀、可寫創建是
a只寫創建否,追加寫
a+可讀、可寫創建否,追加寫
只讀模式打開文件——只讀(r)
文件若不存在報錯:
讀寫模式打開文件——讀寫模式(r+)
數據寫入之前:
數據寫入之後:
會替換掉相同長度的內容
文件若不存在報錯:
寫模式打開文件——寫模式(w)
數據寫入之前:
數據寫入之後:
這種操作會刪除原來的文件內容,重新寫入Python,
並且把游標放在文件最開始。
若文件不存在,系統會創建該文件夾並重新寫入內容
讀寫模式打開文件——讀寫模式(w+)
數據寫入之前:
數據寫入之後:
這種操作會刪除原來的文件內容,重新寫入Python,
並且把游標放在文件最開始。
若文件不存在,系統會創建該文件夾並重新寫入內容
利用這個原理所以文件寫模式(w)、讀寫模式(w+)還可以用作刪除文件內容。
因為他們整個工作原理就是把文件原來的內容刪除,然後寫入新的內容。
如果我們寫入的內容為空,那麼不就是刪除文件內容。
數據寫入之前:
數據寫入之後:
寫模式打開文件(追加內容)——寫模式(a)
數據寫入之前:
數據寫入之後:
可以看到是在原先內容的基礎上在文末追加新的內容!
若文件不存在,系統會創建新的文件夾並寫入內容
讀寫模式打開文件(追加內容)——讀寫模式(a)
數據寫入之前:
數據寫入之後:
可以看到是在原先內容的基礎上在文末追加新的內容!
若文件不存在,系統會創建新的文件夾並寫入內容
二進制模式打開文件
我們看到了在文件打開模式中有以下模式:rb、wb……有這種帶 b 的。
什麼意思呢?
就是用二進制的方式打開文件。
很明顯,我們出現了以下錯誤:
主要原因是因為編碼的問題,可能是因為0x82這個位元組在gbk編碼中沒有這個字元,
可能原字元是兩個位元組,在gbk里被解析成了一個位元組,導致字元不存在。
這就是我們文件打開方式需要使用二進制讀取的原因。
文件操作
open 函數負責打開文件,並且返迴文件對象
read /write / close 三個方法都需要通過文件對象 來調用
文件和文件夾的操作
在Python中⽂件和⽂件夾的操作要藉助os模塊⾥⾯的相關功能,
具體步驟如下:
導⼊os模塊
使⽤ os 模塊相關功能
1、文件重命名
2、刪除文件
3、創建文件夾
4、刪除文件夾
5、獲取當前目錄
6、改變默認目錄
7、獲取目錄列表
『肆』 怎麼打開kml文件
kml文件同kmz文件一樣,是作為保存地標文件的.其引入引出方法與kmz類似,只是選擇文件格式為kml就行了.
kml與kmz不同的是,它是一種xml描述語言,是文本文件格式的.所以有它的優點,比如,可以直接貼在本網頁上. 由於是文本文件格式,其格式我們可以掌握,因而能通過程序自動生成kml語句.
二.earth里的使用
引入方法:與kmz文件一樣,直接打開就行了.
引出方法:與kmz文件類似,但在輸入文件名時,要選擇存為kml文件.
三.如何從網頁上下來,生成引入的kml文件
1.在你的earth里,先隨便引出任一kml地標文件
2.在資源瀏覽器里用滑鼠右鍵點按此文件,選擇菜單"打開方式"-->"記事本(notepad)",注意不要雙擊此kml文件
3.在博客上打開已發布的kml文本網頁
4.從菜單中選擇「全選」,「拷貝」
5.回到2中記事本打開的kml文件里,按"ctrl-A"或用菜單「全選」全選所有文本,按"ctrl-V"或菜單"粘貼"粘貼從網頁中來的文本
6.把包括「-------------------」以前的文本,不包括「</kml>」以後的文本刪除,然後按菜單"保存"保存文件
7.在earth中打開或直接在資源瀏覽器里雙擊此kml文件,即引入了此kml文件
8.注意kml文件引入後,可能不會放在temporary places里,而是直接放在它原來的文件夾里