使用Python将 TSV 文件转换为 Excel
制表符分隔值 (TSV)文件是一种简单的文本格式,用于以表格结构存储和交换数据,例如数据库表或电子表格数据。表格的行与文本文件的行匹配。记录中的每个字段值都由制表字符分隔。因此,TSV 格式是较大的(分隔符分隔值)DSV格式的子集。
在本文中,我们将讨论如何使用Python将 TSV 文件转换为 Excel。在这里,我们将使用XlsxWriter Python模块。它用于创建 XLSX 文件。这个模块不是Python内置的,因此必须明确地安装并加载到工作空间中。要安装此类型,请在终端中输入以下命令。
pip install XlsxWriter
方法
- 首先导入 CSV 模块,这是一个我们不必安装的内置模块。我们使用 csv 模块,因为 tsv 与 csv 非常相似;唯一的区别是 tsv 使用制表符而不是逗号。
- 我们还将导入刚刚安装的 XlsxWriter 模块。 XlsxWriter 模块的主要目的是编写 Excel XLSX 文件。
- 导入两个模块后,我们将创建一个变量,其中包含输入文件的路径及其名称,以及输出文件的所需名称和路径。
- 要构建工作簿,我们将使用 XlsxWriter 模块的 Workbook 类。 Workbook 类是 XlsxWriter 模块可访问的主类,它是唯一需要直接实例化的类。 Workbook 类代表 Excel 中显示的完整电子表格和内部写入磁盘的 Excel 文件。
- 我们定义为输出文件的变量将作为参数传递给类。
句法:
workbook_object = WorkBook(output_filename)
- 工作簿对象的名称可以是任何名称,就像任何变量的名称一样。要将工作表添加到此工作簿,我们将使用方法 add_worksheet()。
- 在这之后唯一剩下的就是从我们的 tsv 文件中读取数据并将其输入到我们的电子表格中。我们将使用我们的 csv 模块,特别是它的读取器函数,并记住我们将读取带有分隔符制表符空格('\t')的文件。
句法:
with open(tsv_file, ‘r’) as csvfile:
… read_tsv = csv.reader(csvfile, delimiter =’\t’)
read_tsv = csv.reader(open(tsv_file, ‘r’), delimiter=’\t’)
- 现在我们将逐行浏览 tsv 文件,并使用 write row() 方法将数据写入工作表。该方法需要将数据作为参数写入,以及单元格行号和列号。
句法:
worksheet_object.write_row(row, col, data)
- 最后,我们将使用 close() 方法关闭工作簿并编写一个 XLSX 文件。
句法:
workbook_object.close()
示例 1:将 TSV 转换为 XLS
使用的 TSV:
代码:
Python3
# Importing modules
import csv
from xlsxwriter.workbook import Workbook
# Input file path
tsv_file = 'worldcup2014.tsv'
# Output file path
xlsx_file = 'worldcup2014.xlsx'
# Creating an XlsxWriter workbook object and adding
# a worksheet.
workbook = Workbook(xlsx_file)
worksheet = workbook.add_worksheet()
# Reading the tsv file.
read_tsv = csv.reader(open(tsv_file, 'r', encoding='utf-8'), delimiter='\t')
# We'll use a loop with enumerate to pass the data
# together with its row position number, which we'll
# use as the cell number in the write_row() function.
for row, data in enumerate(read_tsv):
worksheet.write_row(row, 0, data)
# Closing the xlsx file.
workbook.close()
Python3
# Importing modules
import csv
from xlsxwriter.workbook import Workbook
# Input file path
tsv_file = 'hospital.tsv'
# Output file path
xlsx_file = 'hospital.xlsx'
# Creating an XlsxWriter workbook object and
# adding a worksheet.
workbook = Workbook(xlsx_file)
worksheet = workbook.add_worksheet()
# Reading the tsv file.
read_tsv = csv.reader(open(tsv_file, 'r', encoding='utf-8'), delimiter='\t')
# We'll use a loop with enumerate to pass the
# data together with its row position number, which
# we'll use as the cell number in the write_row()
# function.
for row, data in enumerate(read_tsv):
worksheet.write_row(row, 0, data)
# Closing the xlsx file.
workbook.close()
输出:
示例 2:将 tsv 转换为 xls
使用的 TSV:
代码:
Python3
# Importing modules
import csv
from xlsxwriter.workbook import Workbook
# Input file path
tsv_file = 'hospital.tsv'
# Output file path
xlsx_file = 'hospital.xlsx'
# Creating an XlsxWriter workbook object and
# adding a worksheet.
workbook = Workbook(xlsx_file)
worksheet = workbook.add_worksheet()
# Reading the tsv file.
read_tsv = csv.reader(open(tsv_file, 'r', encoding='utf-8'), delimiter='\t')
# We'll use a loop with enumerate to pass the
# data together with its row position number, which
# we'll use as the cell number in the write_row()
# function.
for row, data in enumerate(read_tsv):
worksheet.write_row(row, 0, data)
# Closing the xlsx file.
workbook.close()
输出: