您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關python中怎么讀取文件到字典,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
學python最重要的是練習,學了不練假把式。每天找點有意思的練習題做做,強化python技能很有裨益。
需求:現有list.txt文件存放了商品銷售數據,需要讀取該文件到字典列表。
文件內容:
商品,單價,數量
蘋果,4.8,5
雪梨,2.9,10
大棗,5.8,6
預期結果是:
[{'商品': '蘋果', '單價': '4.8', '數量': '5'},
{'商品': '雪梨', '單價': '2.9', '數量': '10'},
{'商品': '大棗', '單價': '5.8', '數量': '6'}]
先做分析:文件是文本文件,uf8編碼,用open默認r模式打開即可。第一行內容判斷為字典的key,后面的行是value。
with open('a.txt', encoding='utf8') as f: name = f.readline().strip().split(',') # 讀取文件第一行轉成list,作為字典的key fruit_list = [] for line in f: # 用for循環遍歷句柄f,優點是無論文件有多大,讀取都不會撐爆內存。 # 不要用read()或readlines(),萬一處理的文件超大會導致撐爆內存。 if len(line) < 3: # 過濾空行及數據不完整的行。 continue line = line.strip().split(',') # 將文件內容按','分隔轉成列表 fruit_dict = {} # 聲明一空字典,保存每一行的內容 for i in range(len(name)): # 通過下標遍歷name列表 fruit_dict[name[i]] = line[i] fruit_list.append(fruit_dict) print(fruit_list)
寫完感覺不完美,最好是封裝成函數,利于代碼復用。
最終版本是:
def file_to_list(file): ''' @param file: 參數是文件名,文件格式是以','分隔的txt文件。 @return: 返回一個列表,列表元素是字典,內容源自file文件。 ''' with open(file, encoding='utf8') as f: name = f.readline().strip().split(',') # 讀取文件第一行作為字典的key fruit_list = [] for line in f: if len(line) < 3: # 過濾空行及數據不完整的行。 continue line = line.split(',') fruit_dict = {} for i in range(len(name)): # 遍歷name列表,將每行對應內容做成字典 fruit_dict[name[i]] = line[i].strip() fruit_list.append(fruit_dict) return fruit_list
至此,讀取文件到字典練習完畢。
總結:
一是在開始學python時就要養成好習慣,將功能模塊化,提高代碼復用率和可讀性。
二是定義方法要寫文檔注釋,方法參數和返回值要解釋清楚。
三是代碼注釋不用每行都寫,重點是講清楚代碼邏輯。
上述就是小編為大家分享的python中怎么讀取文件到字典了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。