在 Python 中將文字檔案轉換為 CSV
Isaac Tony
2022年5月17日
Pandas 提供了一系列功能,其中包括將文字檔案轉換為 CSV 檔案的能力。
首先,我們首先需要使用 Anaconda 安裝 Pandas。或者,也可以在 Windows 上使用 pip 包管理器安裝 pandas,如下所示。
pip install pandas
輸出:
Defaulting to user installation because normal site-packages is not writeable
Collecting pandas
Downloading pandas-1.3.4-cp310-cp310-win_amd64.whl (10.2 MB)
|████████████████████████████████| 10.2 MB 1.3 MB/s
Collecting numpy>=1.21.0
Downloading numpy-1.21.4-cp310-cp310-win_amd64.whl (14.0 MB)
|████████████████████████████████| 14.0 MB 90 kB/s
Collecting python-dateutil>=2.7.3
Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
|████████████████████████████████| 247 kB 1.3 MB/s
Collecting pytz>=2017.3
Downloading pytz-2021.3-py2.py3-none-any.whl (503 kB)
|████████████████████████████████| 503 kB 1.3 MB/s
Collecting six>=1.5
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, pytz, python-dateutil, numpy, pandas
WARNING: The script f2py.exe is installed in 'C:\Users\tonyloi\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed numpy-1.21.4 pandas-1.3.4 python-dateutil-2.8.2 pytz-2021.3 six-1.16.0
安裝完成後,我們需要使用 import 語句將 pandas 包匯入到我們的程式碼中。
這讓我們可以訪問 Pandas I/O API,它具有讀取器和寫入器功能。
在實現 reader 功能之前,我們需要記下檔案位置的路徑。該路徑通常類似於下面的路徑,但根據檔案在你的計算機中的位置而有所不同。
# python 3
C:\Users\tonyloi\Desktop\sample.txt
另一方面,我們還需要確定將要生成的新 CSV 檔案的儲存位置,因為這是傳遞給 writer 函式的一個常見引數。
此外,CSV 檔案的名稱也需要事先確定。此位置可能類似於以下位置,具體取決於你希望新 CSV 檔案的儲存位置。
C:\Users\tonyloi\Desktop\sample.csv
一旦我們準備好所有這些,現在就是編寫兩個函式的時候了:讀取器函式將文字檔案讀入我們當前的工作區,寫入器函式將文字轉換為 CSV 格式。
示例程式碼:
# python 3.x
import pandas as pd
file = pd.read_csv(r'C:\Users\tonyloi\Desktop\sample.txt')
new_csv_file = file.to_csv(r'C:\Users\tonyloi\Desktop\sample_csv_file.csv')
執行上面的程式碼會在指定位置建立一個名為 sample_csv_file.csv
的新 CSV 檔案。
Author: Isaac Tony
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn