下面是“Python批量翻译Excel表格中的英文”的完整实例教程。
1. 准备工作
在使用 Python 批量翻译 Excel 表格的过程中,需要先完成以下准备工作。
1.1 安装必要的库
首先需要安装必要的库,包括 pandas
和 googletrans
。pandas
是 Python 中用于数据处理的库,googletrans
是用于谷歌翻译的 Python API 库。
可以使用以下命令进行安装:
pip install pandas googletrans
1.2 登录谷歌翻译平台
使用 Googletrans
进行翻译需要连接 Google Translate API,因此需要在 Google API Console 上创建一个项目,并启用 Translate API。
首先登录 Google Cloud Console
然后创建一个新的项目:
创建完毕后,确保该项目选中。然后选择左侧导航栏“API与服务”,并选择“库”菜单。在这里搜索“Google Translate API”,并启用它。
启用完毕之后,进入“凭据”菜单,点击“创建凭据”,并选择“服务账号密钥”。
在下一步中选择“JSON”格式。
下载保存在本地,并将其命名为google_translate_api_key.json
。
2. Python实现Excel批量翻译
2.1 示例一
假设我们有一个包含英文文本的 Excel 表格example.xlsx
,我们想要把其中的英文文本翻译成中文。
首先,我们需要在 Python 中导入所需的库和凭据文件。下面是完整的代码:
import pandas as pd
from googletrans import Translator, constants
from pprint import pprint
import json
# 加载 API 凭据
with open("google_translate_api_key.json") as f:
data = json.load(f)
# 初始化翻译器
translator = Translator(service_urls=['translate.google.cn'])
# 读取 Excel 文件
df = pd.read_excel('example.xlsx')
# 获取文本所在列
text_column = '英文文本'
# 遍历每一行,进行翻译
for index, row in df.iterrows():
text = row[text_column]
if type(text) == str:
# 进行翻译
translation = translator.translate(text, dest='zh-CN').text
row['翻译结果'] = translation
else:
row['翻译结果'] = ''
# 输出结果
print(df)
在这个示例中,我们使用了 pandas
库来读取和操作 Excel 表格。我们创建了一个名为 text_column
的变量,用于存储英文文本在表格中的列名。
然后,我们使用 for
循环遍历每一行,在 if
语句中判断文本是否为字符串类型。如果是,就进行翻译,并将翻译结果存储在一个名为 翻译结果
的新列中,否则将该列置为空。
最后,我们使用 print(df)
将翻译结果输出到控制台。
2.2 示例二
在第二个示例中,我们想要翻译一个包含多个工作表的 Excel 文件 example.xlsx
,并将翻译后的结果写回到原始文件中。
下面是完整的代码:
import pandas as pd
from googletrans import Translator, constants
from pprint import pprint
import os
import json
# 加载 API 凭据
with open("google_translate_api_key.json") as f:
data = json.load(f)
# 定义翻译器
def translate_text(text, dest='zh-CN'):
translator = Translator(service_urls=['translate.google.cn'])
return translator.translate(text, dest=dest).text
# 定义读取 Excel 文件的函数
def read_excel(file_path):
sheets_dict = pd.read_excel(file_path, sheet_name=None)
return sheets_dict
# 定义写入 Excel 文件的函数
def write_excel(file_path, sheets_dict):
with pd.ExcelWriter(file_path) as writer:
for sheet_name, df in sheets_dict.items():
df.to_excel(writer, sheet_name=sheet_name, index=False)
# 读取 Excel 文件
file_path = 'example.xlsx'
sheets_dict = read_excel(file_path)
# 遍历每一个工作表,进行翻译
for sheet_name, df in sheets_dict.items():
# 获取文本所在列
text_column = '英文文本'
# 遍历每一行,进行翻译
for index, row in df.iterrows():
text = row[text_column]
if type(text) == str:
# 进行翻译
translation = translate_text(text)
row['翻译结果'] = translation
else:
row['翻译结果'] = ''
sheets_dict[sheet_name] = df
# 将翻译后的结果写回到 Excel 文件中
write_excel(file_path, sheets_dict)
在这个示例中,我们定义了两个函数:read_excel
和 write_excel
,这些函数用于读取和写入 Excel 文件。
我们将每个工作表中的英文文本翻译成中文,并将结果存储在一个名为 翻译结果
的新列中。
最后,我们将翻译后的结果写回到原始文件中,使用 write_excel
函数。
3. 结论
以上就是使用 Python 实现 Excel 批量翻译的完整示例教程。我们使用 pandas
库来读取和操作 Excel 文件,使用 googletrans
库进行翻译。
这种方法不仅可以用于将英文文本翻译成中文,也可以用于将其他语言的文本进行相互翻译。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python批量翻译excel表格中的英文 - Python技术站