Python 逐行讀取txt 文件並生成列表


前言

我們在編寫一些自動化腳本的時候,爲了方便,經常需要以txt 文件作爲數據輸入,今天就跟大家討論一下如何對txt 文件進行讀取並生成對應的列表等程序可操作的數據載體
在這裏插入圖片描述

開始

1. 載入文件

這步就大家比較熟悉,文件操作中最基本的了。

因爲我們只需要讀取文件,並不需要寫入文件,所以在這裏指定mode="r" 爲只讀模式(默認)。

f = open("C:/foo.txt", "r",encoding='utf-8')

此時就有了這個txt 文件的數據輸入流了。

2. 讀取數據流

讀取數據的方法主要有三個,分別是read()readline()readlines()

方法 作用
read() 從文件讀取指定的字節數,如果未給定或爲負則讀取所有。
readline() 讀取整行,包括 “\n” 字符。
readlines() 讀取所有行並返回列表,若給定sizeint>0,返回總和大約爲sizeint字節的行, 實際讀取值可能比 sizeint 較大, 因爲需要填充緩衝區。

接下來簡單展示一下這三種方法的區別:
這是foo.txt 中的內容

("祖安", 1000)
("諾克薩斯", 900)
("艾歐尼亞", 880)
("暗影島", 750)
("征服之海", 620)
("黑色玫瑰", 600)
("德瑪西亞", 500)
("裁決之地", 440)
("聖安地列斯", 400)
("自由城", 350)
("供電所", 300)
("影流", 200)
("荊棘坎坷", 180)
("永不言棄", 100)
  1. read()
    txt 數據格式一致,返回str 類型數據
    在這裏插入圖片描述
  2. readline()
    只讀取一行(包括換行),返回str 類型數據
    在這裏插入圖片描述
  3. readlines()
    全部讀取,返回list 類型數據
    在這裏插入圖片描述

3. 數據處理

根據上一步,我們可以得到多種形式的數據類型,從而根據我們的需求進行多種處理。

大家可以看到,我的foo.txt 中的數據是滿足元組形式的,那我就試着將foo.txt 文件中的字符串類型數據轉變成元組吧:

line = f.readline() # 讀取一行
tu = eval(line) # 轉爲元組形式
print(tu)
print(type(tu))

輸出:
在這裏插入圖片描述
若需要全部數據都逐行轉變爲元組,然後整體串成一個列表:

txt_tables = []
f = open("C:/foo.txt", "r",encoding='utf-8')
line = f.readline() # 讀取第一行
while line:
    txt_data = eval(line) # 可將字符串變爲元組
    txt_tables.append(txt_data) # 列表增加
    line = f.readline() # 讀取下一行
print(txt_tables)

之所以while 循環中的f.readline() 能夠不斷讀取下一行,是因爲當我們每次執行完一次該語句之後,文件輸入流的指針都會移動到下一行的起始位,所以每次再次執行,都是從下一行的第一個字符開始讀取。

輸出:
在這裏插入圖片描述

4. 關閉文件

是的,不要忘了關閉文件流:

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