Python-TXT文本操做

1、列出IO操做的標識符及描述

標識符 描述
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。
r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。
rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w 打開一個文件只用於寫入。若是該文件已存在則將其覆蓋。若是該文件不存在,建立新文件。
wb 以二進制格式打開一個文件只用於寫入。若是該文件已存在則將其覆蓋。若是該文件不存在,建立新文件。
w+ 打開一個文件用於讀寫。若是該文件已存在則將其覆蓋。若是該文件不存在,建立新文件。
wb+ 以二進制格式打開一個文件用於讀寫。若是該文件已存在則將其覆蓋。若是該文件不存在,建立新文件。
a 打開一個文件用於追加。若是該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容以後。若是該文件不存在,建立新文件進行寫入。
ab 以二進制格式打開一個文件用於追加。若是該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容以後。若是該文件不存在,建立新文件進行寫入。
a+ 打開一個文件用於讀寫。若是該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。若是該文件不存在,建立新文件用於讀寫。
ab+ 以二進制格式打開一個文件用於追加。若是該文件已存在,文件指針將會放在文件的結尾。若是該文件不存在,建立新文件用於讀寫。

2、讀TXT文件

要以讀文件的模式打開一個文件對象,使用Python內置的open()函數,傳入文件名和標示符。緩存

>>> f = open('/Users/wangjuan/test.txt', 'r')
#文件打開成功,調用read()方法能夠一次讀取文件的所有內容
>>> f.read()
'Hello, it is a test case!'
#調用close()方法關閉文件
>>> f.close()

文件使用完畢後必須關閉,由於文件對象會佔用操做系統的資源,而且操做系統同一時間能打開的文件數量也是有限的。app

因爲文件讀寫時都有可能產生IOError,一旦出錯,後面的f.close()就不會調用。因此,爲了保證不管是否出錯都能正確地關閉文件,咱們可使用try ... finally來實現:函數

try:
    f = open('/Users/wangjuan/test.txt', 'r')
    print(f.read())
finally:
    if f:
        f.close()

可是每次都這麼寫實在太繁瑣,因此,Python引入了with語句來自動幫咱們調用close()方法:spa

with open('/Users/wangjuan/test.txt', 'r') as f:
    print(f.read())

readlines() 方法用於讀取全部行(直到結束符 EOF)並返回列表,該列表能夠由 Python 的 for... in ... 結構進行處理。若是碰到結束符 EOF 則返回空字符串。舉例以下:操作系統

file = '/Users/wangjuan/test.txt'
f = open(file, 'r')
# 按行讀出文件內容
sourceInLines = f.readlines()
f.close()
# 定義一個空列表,用來存儲結果
new = []
for line in sourceInLines:
      temp1 = line.strip('\n')  # 去掉每行最後的換行符'\n'
      temp2 = temp1.split(',')  # 以','爲標誌,將每行分割成列表
      new.append(temp2)  # 將上一步獲得的列表添加到new中

3、寫TXT文件

寫文件和讀文件是同樣的,惟一區別是調用open()函數時,傳入標識符'w'或者'wb'表示寫文本文件或寫二進制文件:指針

>>> f = open('/Users/wangjuan/test.txt', 'w')
>>> f.write('Hello, world!')
>>> f.close()

能夠反覆調用write()來寫入文件,可是務必要調用f.close()來關閉文件。當咱們寫文件時,操做系統每每不會馬上把數據寫入磁盤,而是放到內存緩存起來,空閒的時候再慢慢寫入。只有調用close()方法時,操做系統才保證把沒有寫入的數據所有寫入磁盤。忘記調用close()的後果是數據可能只寫了一部分到磁盤,剩下的丟失了。因此,仍是用with語句來得保險:code

import os

def write_re(result,type):
    file = str(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, "data/result.txt")))

    with open(file, type) as f:
        f.write(result)

固然若是你想寫入的內容繼續疊加的話,可使用標識符'a'或者' a+'或者'ab+'。對象


以上,對你有幫助的話,點贊吧~ip

相關文章
相關標籤/搜索