文件操做

1 讀文件

  1.1 簡單讀文件

1 f = open('text', 'r')  # f是文件句柄
2 data = f.read()  # read方法能夠加整型參數,是幾就讀幾個字符
3 print(data)
4 f.close()

  1.2 readline()和readlines()

    readline():每次讀文件中的一句。緩存

    readlines():將整個文件中的字符所有讀出,並將其存在一個列表裏,列表中的每一個元素是文件中的一句。spa

    在讀大文件時儘可能不要用readlines,太佔用內存。code

1 f = open('text', 'r')
2 a = f.readline()
3 b = f.readline()
4 c = f.readline()
5 d = f.readline()
6 print(a)  # my name is Bob
7 print(b)  # I am 18 years old
8 print(c)  # I like learning
9 print(d)  # I have a dog
f = open('text', 'r')
lines = f.readlines()
print(lines)
# ['my name is Bob\n', 'I am 18 years old\n', 'I like learning\n', 'I have a dog']

  1.3 迭代器

    文件句柄是一個迭代器,能夠經過for循環取出迭代器中的值,節約內存,處理效率更高。blog

1 f = open('text', 'r')
2 for i in f:
3     print(i.strip())
4 # my name is Bob
5 # I am 18 years old
6 # I like learning
7 # I have a dog

2 寫文件

  2.1 清理寫

1 f = open('text', 'w')
2 f.write('hello world')
3 f.close()

  2.2 非清理寫

1 f = open('text', 'a')
2 f.write('hello world')
3 f.close()

3 讀取和調整光標的位置

1 f = open('text', 'r')
2 print(f.tell())  # 0
3 print(f.read(2))  # he
4 print(f.tell())  # 2
5 f.seek(0)
6 print(f.tell())  # 0

4 將緩存區內容寫進磁盤中

1 f = open('text', 'w')
2 f.write('Bob is 32')  # 此時文件中並無寫入
3 f.flush()  # 將剛寫入緩存區的內容寫入到磁盤中
4 f.close()

5 文件的操做模式

1 # r+ :從文章起始位置讀,從文章最後寫
2 # w+ :從光標後一個字符讀,在文章最後寫,可是在打開文件時清空文檔
3 # a+ :從文章最後讀,正常追加

6 例題:在任意一行的後面添加字符串,並將文件打印出來

1 with open('text', 'r') as f:
2     num = 0
3     for i in f.readlines():
4         num += 1
5         if num == 4:
6             i = ''.join([i.strip(), '***'])
7         print(i.strip())

7 例題:修改文件中任意一行

1 with open('text', 'r') as f_read, open('text1', 'w') as f_write:
2     num = 0  # 計數,在符合行數時修改內容
3     for line in f_read:  # 遍歷f_read中的每行
4         num += 1  # 沒遍歷一行,計數器加一
5         if num == 4:  # 在第四次遍歷時,即在第四行時執行if塊語句
6             line = 'hello\n'  # 當在第四行時將文件的內容改成hello
7         f_write.write(line)  # 將處理後的全部字符串寫入f_write
相關文章
相關標籤/搜索