用 Python 將檔案讀入字典

Vaibhhav Khetarpal 2023年1月30日 2021年12月4日
  1. 在 Python 中使用 split() 函式將檔案讀入字典
  2. 在 Python 中使用 strip() 函式和 split() 函式將檔案讀入字典
  3. 在 Python 中使用字典理解將檔案讀入字典
  4. 在 Python 中使用 pandas 庫將檔案讀入字典
用 Python 將檔案讀入字典

檔案處理是任何 Web 應用程式開發和維護的重要組成部分。與其他流行的程式語言一樣,Python 完全能夠支援檔案處理。它允許使用者對不同型別的檔案進行操作,同時承載一些基本操作,如讀寫等其他主流操作。

本教程演示了在 Python 中將檔案讀入字典的不同方法。

作為參考,我們將在程式碼中使用一個文字檔案來解釋本文中使用的不同方法。

檔案 File1.txt 的內容:

4 x
5 y
6 z

在 Python 中使用 split() 函式將檔案讀入字典

split() 函式通常用於將給定的字串切割成一個列表。

以下程式碼使用 split() 函式在 Python 中將檔案讀入字典。

a = {}
with open("File1.txt") as f:
    for line in f:
       (k, v) = line.split()
       a[int(k)] = v
print(a)

上面的程式碼提供了以下輸出:

{4: 'x', 5: 'y', 6: 'z'}

解釋:

  • 首先建立一個空字典 a
  • open() 函式用於開啟和讀取給定的檔案 File1.txt
  • 逐行讀取檔案內容。
  • 然後使用 split() 函式在空格字元處截斷行內容。空格前的字元作為鍵,空格後的字元作為字典的值。
  • for 迴圈用於迭代目的和到達檔案末尾。

在 Python 中使用 strip() 函式和 split() 函式將檔案讀入字典

Python 中的 strip() 函式刪除字串開頭和結尾的任何特別指定的字元或空格。該函式返回一個新字串,而不是對原始字串進行更改。

以下程式碼使用 strip() 函式和 split() 函式在 Python 中將檔案讀入字典。

with open('File1.txt') as f:
  a = dict(i.rstrip().split(None, 1) for i in f)
print(a)

上面的程式碼提供了以下輸出:

{4: 'x', 5: 'y', 6: 'z'}

解釋:

  • 首先建立一個空字典 a
  • open() 函式用於開啟和讀取給定的檔案 File1.txt
  • 檔案內容逐行讀取。
  • 然後使用 split() 函式在空格字元處截斷行內容。strip() 函式也用於刪除提到的字元。
  • for 迴圈用於迭代目的和到達檔案末尾。

在 Python 中使用字典理解將檔案讀入字典

字典理解是非常流行和使用的列表推導的語法擴充套件。

雖然字典理解在語法上類似於 Python 程式碼中的列表推導,但它有很大的不同,因為前者將輸出作為字典生成,而後者則提供列表作為輸出。

以下程式碼使用字典理解將檔案讀入 Python 中的字典。

with open("File1.txt") as f:
    a = {int(k): v for line in f for (k, v) in [line.strip().split(None, 1)]}
print(a)

上面的程式碼提供了以下輸出:

{4: 'x', 5: 'y', 6: 'z'}

在 Python 中使用 pandas 庫將檔案讀入字典

Pandas 是 Python 提供的用於資料分析和操作的庫。Pandas 是一個開源、易於使用且靈活的庫。

以下程式碼使用 pandas 庫在 Python 中將檔案讀入字典。

import pandas as pd 
a = pd.read_csv("File1.txt", delimiter=" ", header = None).to_dict()[0]
print(a)

上面的程式碼提供了以下輸出:

{4: 'x', 5: 'y', 6: 'z'}
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python File

相關文章 - Python Dictionary