在 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