學習筆記(10月27日)--文件的操作

二週五次課(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

file.close()

關閉文件。關閉後文件不能再進行讀寫操作。

2

file.flush()

刷新文件內部緩衝,直接把內部緩衝區的數據立刻寫入文件, 而不是被動的等待輸出緩衝區寫入。

3

file.fileno()

返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。

4

file.isatty()

如果文件連接到一個終端設備返回 True,否則返回 False。

5

file.next()

返回文件下一行。

6

file.read([size])

從文件讀取指定的字節數,如果未給定或爲負則讀取所有。

7

file.readline([size])

讀取整行,包括 "\n" 字符。

8

file.readlines([sizehint])

讀取所有行並返回列表,若給定sizeint>0,返回總和大約爲sizeint字節的行, 實際讀取值可能比sizhint較大, 因爲需要填充緩衝區。

9

file.seek(offset[, whence])

設置文件當前位置

10

file.tell()

返回文件當前位置。

11

file.truncate([size])

截取文件,截取的字節通過size指定,默認爲當前文件位置。

12

file.write(str)

將字符串寫入文件,沒有返回值。

13

file.writelines(sequence)

向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。


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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章