天天看點

python檔案操作二

1、常用函數:

fileObject.read([size])

size為讀取的長度,以byte為機關。如果不指定參數,表示一次性讀取全部

内容,以字元串形式傳回,并且每一行結尾會有一個"\n"符号。

代碼示例1:

結果:

abcede

123

this is a test檔案操作jfedcba

代碼示例2:

讀取:ab

fileObject.readline( [size] )

一行,如果給定了size,有可能傳回的隻是一行的一部分,以字元串的形式返

回,并且結尾會有一個換行符"\n"。讀完一行,檔案操作标記移動到下一行的

開頭

列題1

大學之道,在明明德,在親民,在止于至善。

列題 1:

大學之道,

fileObject.readlines( [size] )

把檔案每一行作為一個list的一個成員,是一個字元串,并且結尾會一個換行符"\n",并傳回這個list。這個函數的内部是通過循環調用readline()來實作的。如果指定了size參數,表示讀取檔案指定内容的長度,此時就有可能隻能讀取檔案的一部分

python檔案操作二

fileObject.write( str )

把str寫到檔案中,預設是不加換行符的,是以如果想換行的話,得手動加入換行符'

我是最幫的!!

學習檔案寫入操作

fileObject.writelines( seq )

把seq(序列)的内容全部寫到檔案中(多行一次性寫入)。也不會自動加入換行符

如:

學習檔案寫入操作我是最幫的!!

學習檔案寫入操作,加油!!!

fileObject.close()

File 對象的 close()方法重新整理緩沖區裡任何還沒寫入的資訊,并關閉該檔案,這之後便不能再進行寫入。當一個檔案對象的引用被重新指定給另一個檔案時,Python 會關閉之前的檔案。用 close()方法關閉檔案是一個很好的習慣。如果檔案關閉後,還對檔案進行操作就會産生ValueError錯誤,但如果不及時關閉檔案,有可能産生句

柄洩露,丢失資料

#打開檔案準備寫檔案

檔案名: test.txt

檔案是否關閉: True

fileObject.flush()

該函數是将緩沖區中的内容寫入硬碟

fileObject.tell()

傳回檔案操作标記的目前位置,以檔案的開頭為基準點

目前檔案操作标記位置為: 0

讀取一行後檔案操作标記位置為: 23

fileObject.seek( offset[, from ] )

tell()方法告訴你檔案内的目前位置;換句話說,下一次的讀寫會發生在檔案開頭這麼多位元組之後。seek(offset [,from])這是一個檔案定位函數,該方法改變目前檔案的位置。 Offset變量表示要移動的位元組數。From變量指定開始移動位元組的參考位置。如果from被設為0(預設值),這意味着将檔案的開頭作為移動位元組的參考位置。如果設為1,則使用目前的位置作為參考位置。如果它被設為2,那麼該檔案的末尾将為參考位置。需要注意,如果檔案以a或a+的模式打開,每次進行寫操作時,檔案操作标記會自動傳回到檔案末尾。測試檔案test.txt,内容如下:

讀取的字元串是 : 我是最幫的!

目前檔案位置 : 18

重新讀取字元串 : 我是最幫的!

fileObject.truncate( [size] )

把檔案裁成規定的大小,預設的是裁到目前檔案操作标記的位置。如果size比件的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些随機的内容加上去。

<code>linecache</code>

子產品允許從任何檔案裡得到任何的行,并且使用緩存進行優化,常見的情況是從單

個檔案讀取多行。

linecache.getlines(filename)

從名為 filename 的檔案中得到全部内容,輸出為清單格式,以檔案每行為清單中的一個元素,

并以 linenum-1 為元素在清單中的位置存儲

linecache.getline(filename,lineno)

從名為 filename 的檔案中得到第 lineno 行。這個函數從不會抛出一個異常–産生錯誤時它将

傳回”(換行符将包含在找到的行裡)。

如果檔案沒有找到,這個函數将會在 sys.path 搜尋。

linecache.clearcache()

清除緩存,如果你不再需要先前從 getline() 中得到的行

linecache.checkcache(filename)

檢查緩存的有效性。如果在緩存中的檔案在硬碟上發生了變化,并且你需要更新版本,使用

這個函數,執行此函數會講淘汰的内容删除。如果省略 filename,将檢查緩存裡的所有條目。

linecache.updatecache(filename)

更新檔案名為 filename 的緩存。如果 filename 檔案更新了,使用這個函數可以更新

傳回的清單。如果出錯,則傳回空清單。

删除空行的方法

列題:

資料檔案:data.log

20160215 000148|0|collect info job start|success|

20160215000153|0|collect info job

end|success|resultcode = 0000

20160216000120|0|collect info job start|success|

20160216000121|0|collect info job

20160217000139|0|collect info job start|success|

20160217000143|0|collect info job

資料分析需求:

每行内容需要生成以每行

首年月日為名稱的檔案,

檔案内容寫入|0|後的所有

行内容(也包括|0| )

算法分析:

周遊每一行,每行取頭8個字母

建立檔案,檔案名為首8個字母,然後把第15字元後的所有字

符拷貝到檔案中

關閉檔案

本文轉自 知止内明 51CTO部落格,原文連結:http://blog.51cto.com/357712148/2060672,如需轉載請自行聯系原作者