溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中怎么讀取文件到字典

發(fā)布時(shí)間:2021-07-10 15:29:07 來源:億速云 閱讀:1388 作者:Leah 欄目:互聯(lián)網(wǎng)科技

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)python中怎么讀取文件到字典,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

學(xué)python最重要的是練習(xí),學(xué)了不練假把式。每天找點(diǎn)有意思的練習(xí)題做做,強(qiáng)化python技能很有裨益。
需求:現(xiàn)有l(wèi)ist.txt文件存放了商品銷售數(shù)據(jù),需要讀取該文件到字典列表。

文件內(nèi)容:
 商品,單價(jià),數(shù)量
 蘋果,4.8,5
 雪梨,2.9,10
 大棗,5.8,6

預(yù)期結(jié)果是:
 [{'商品': '蘋果', '單價(jià)': '4.8', '數(shù)量': '5'},
 {'商品': '雪梨', '單價(jià)': '2.9', '數(shù)量': '10'},
 {'商品': '大棗', '單價(jià)': '5.8', '數(shù)量': '6'}]

先做分析:文件是文本文件,uf8編碼,用open默認(rèn)r模式打開即可。第一行內(nèi)容判斷為字典的key,后面的行是value。

with open('a.txt', encoding='utf8') as f:
    name = f.readline().strip().split(',')  # 讀取文件第一行轉(zhuǎn)成list,作為字典的key
    fruit_list = []
    for line in f:  # 用for循環(huán)遍歷句柄f,優(yōu)點(diǎn)是無論文件有多大,讀取都不會(huì)撐爆內(nèi)存。
        # 不要用read()或readlines(),萬一處理的文件超大會(huì)導(dǎo)致?lián)伪瑑?nèi)存。
        if len(line) < 3:  # 過濾空行及數(shù)據(jù)不完整的行。
            continue
        line = line.strip().split(',')  # 將文件內(nèi)容按','分隔轉(zhuǎn)成列表
        fruit_dict = {}  # 聲明一空字典,保存每一行的內(nèi)容
        for i in range(len(name)):  # 通過下標(biāo)遍歷name列表
            fruit_dict[name[i]] = line[i]
        fruit_list.append(fruit_dict)
    print(fruit_list)

寫完感覺不完美,最好是封裝成函數(shù),利于代碼復(fù)用。

最終版本是:

def file_to_list(file):
    '''
    @param file: 參數(shù)是文件名,文件格式是以','分隔的txt文件。
    @return: 返回一個(gè)列表,列表元素是字典,內(nèi)容源自file文件。
    '''

    with open(file, encoding='utf8') as f:
        name = f.readline().strip().split(',')  # 讀取文件第一行作為字典的key
        fruit_list = []
        for line in f: 
            if len(line) < 3:  # 過濾空行及數(shù)據(jù)不完整的行。
                continue
            line = line.split(',') 
            fruit_dict = {} 
            for i in range(len(name)):  # 遍歷name列表,將每行對(duì)應(yīng)內(nèi)容做成字典
                fruit_dict[name[i]] = line[i].strip()
            fruit_list.append(fruit_dict) 
    return fruit_list

至此,讀取文件到字典練習(xí)完畢。

總結(jié):
一是在開始學(xué)python時(shí)就要養(yǎng)成好習(xí)慣,將功能模塊化,提高代碼復(fù)用率和可讀性。
二是定義方法要寫文檔注釋,方法參數(shù)和返回值要解釋清楚。
三是代碼注釋不用每行都寫,重點(diǎn)是講清楚代碼邏輯。

上述就是小編為大家分享的python中怎么讀取文件到字典了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI