二週五次課(10月27日)
1.讀取文件內容
文件操作需要3步:
1.1 open文件
1.2 文件操作(讀或者寫)
1.3 關閉文件
例子:
import codecs f = codecs.open('1.txt') print(f.read()) f.close()
結果:
111 aaaa 5gbj677ddd
注:codecs類是解決文件亂碼的問題。
2.寫入一個新的文件
open(filename, mode)
mode有幾個參數:
r——讀
w——寫
b——二進制
a——追加
例子:
import codecs f = codecs.open('2.txt', 'wb') f.write('hello world!\n') f.write('I love you!\n') f.close()
結果:新建了文件2.txt,內容如下:
hello world! I love you!
注:\n是換行
3.With的特殊用法
有時候,我們可能在編碼的時候忘記關閉文件,這個就有點不完美了,如果有太多的文件沒有關閉,這個會對系統造成壓力,那有沒有什麼方法,在我們不用文件的時候直接給我們自動關閉文件呢?
例子:
import codecs with codecs.open('1.txt', 'rb') as f: print(f.read())
結果:
111 aaaa 5gbj677ddd
with的方法在我們平時工作的開發過程中是最常用的,他簡單方便,支持快速開發,不需要考慮文件關閉的情況。
4.Codecs的特殊使用
codecs類是解決文件亂碼的問題。
例子:
import codecs f = codecs.open('1.txt') print(f.read()) f.close()
結果:
111 aaaa 5gbj677ddd
5.文件操作的常用方法
file 對象使用 open 函數來創建,下表列出了 file 對象常用的函數:
序號 | 方法及描述 |
---|---|
1 | 關閉文件。關閉後文件不能再進行讀寫操作。 |
2 | 刷新文件內部緩衝,直接把內部緩衝區的數據立刻寫入文件, 而不是被動的等待輸出緩衝區寫入。 |
3 | 返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。 |
4 | 如果文件連接到一個終端設備返回 True,否則返回 False。 |
5 | 返回文件下一行。 |
6 | 從文件讀取指定的字節數,如果未給定或爲負則讀取所有。 |
7 | 讀取整行,包括 "\n" 字符。 |
8 | 讀取所有行並返回列表,若給定sizeint>0,返回總和大約爲sizeint字節的行, 實際讀取值可能比sizhint較大, 因爲需要填充緩衝區。 |
9 | 設置文件當前位置 |
10 | 返回文件當前位置。 |
11 | 截取文件,截取的字節通過size指定,默認爲當前文件位置。 |
12 | 將字符串寫入文件,沒有返回值。 |
13 | 向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。 |
readline()方法用來打印文件的一行內容:
import codecs with codecs.open('1.txt', 'rb') as f: print(f.readline())
結果:
111
readlines()方法,讀取文件,最後把文件每行的內容作爲一個字符串的單個元素,放在一個list中。
import codecs with codecs.open('1.txt', 'rb') as f: print(f.readlines())
結果:
['111\r\n', 'aaaa\r\n', '5gbj677ddd\r\n']
next()方法讀取文件下一行內容,返回一個字符串
import codecs with codecs.open('1.txt', 'rb') as f: print(f.next())
結果:
111