批量翻译任务看似简单,但人工处理文档时,既要保持术语一致,又要快速交付,效率往往难以满足需求。此时,借助 GPT-3.5-turbo 编写一个 Python 翻译脚本,是一条高效捷径。该模型不仅能准确理解源语言语义,还能生成流畅的目标语言,关键在于它能自动分割长文本、逐段翻译,最终无缝拼接成完整译文。
这个脚本的适用场景极为广泛:文档翻译、商务邮件、学术论文、日常交流,只需粘贴一句话,几秒内即可获得结果。支持 .md、.txt、.pdf 等常见文件格式,具体操作步骤如下。
环境配置与准备工作
脚本基于 Python 编写,运行前需安装 Python 环境及 OpenAI 库(建议使用 pip 安装,依赖会自动补齐)。同时,必须准备好有效的 API_KEY,否则无法调用接口。MacOS 系统自带 Python,安装库后即可运行;Windows 用户操作方式相同。
翻译脚本代码
在 IDE(如 VSCode)中新建一个 .py 文件,将下方代码复制进去。在同级目录下再创建一个 hello.md 文件,随意写入几句英文用于测试。

翻译脚本如下:
import openai
import os
# 读取环境变量中的 api_key
openai.api_key = os.environ.get("OPENAI_API_KEY")
# 也可直接写 api_key
# openai.api_key = 'API_KEY'
# 源文件
source_file = "hello.md"
# 当前脚本所在的目录路径
script_dir = os.path.dirname(os.path.abspath(__file__))
print("当前脚本所在的目录路径:" + script_dir)
def get_markdown_file(source_file):
source_path = os.path.join(script_dir, source_file)
print("源文件路径:" + source_path)
# 读取源文件内容
with open(source_path, 'r', encoding='utf-8') as file:
content = file.read()
# print(content)
return content
zh_text = get_markdown_file(source_file)
# 调用翻译API将内容从英文翻译成中文
def get_completion(prompt, model="gpt-3.5-turbo"):
messages = [{"role": "user", "content": f"""将英文文本翻译成中文,相关的专有名词不做翻译:{prompt}"""}]
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=.1, # 值越低则输出文本随机性越低
)
return response.choices[0].message["content"]
# 分割翻译的文本
segments = zh_text.split("\n\n")
segments = [zh_text[i:i+ 2000] for i in range(0, len(zh_text), 2000)]
translated_segments = []
print("分割完成,开始翻译")
# 逐段进行翻译
for i, segment in enumerate(segments):
prompt = f"```{segment}```"
response = get_completion(prompt)
translated_segments.append(response)
# 在控制台实时显示翻译进度
print(f"Translated segment {i+1} of {len(segments)}. Remaining segments: {len(segments)-(i+1)}")
# 组合翻译后的文本
translated_content = "\n\n".join(translated_segments)
# 目标文件
target_file = "hello-zh.md"
# 获取目录路径
target_dir = os.path.join(script_dir, os.path.dirname(target_file))
print("获取目录路径: " + target_dir)
# 创建目标目录(如果不存在)
os.makedirs(target_dir, exist_ok=True)
target_path = os.path.join(script_dir, target_file)
print("写入目标路径:" + target_path)
# 将翻译结果写入目标文件
with open(target_path, 'w', encoding='utf-8') as file:
file.write(translated_content)
print('翻译完成!')
运行脚本
点击编辑器右上角的运行按钮,控制台会实时显示翻译进度。运行完毕后,同级目录下会生成一个新的 .md 文件,其中包含完整的译文。

脚本关键点解析
代码中已包含详细注释,但以下几个要点仍需特别说明。
1. API_KEY 的配置
API_KEY 可从系统环境变量读取(若已提前配置),也可直接在脚本中硬编码。两种方式均可,根据个人习惯选择。

2. 源文件与目标文件路径
注意:无论是源文件还是目标文件,路径中均需包含完整的文件名后缀,如 .md。
源文件即待翻译的内容,可与脚本位于同一目录,也可放在脚本同级的子目录中(路径开头无需加 /)。目标文件同理,只需指定路径即可自动生成。


3. Prompt 提示词定制
不同文档类型对应不同的 Prompt。例如翻译 Stylus 技术文档时,可将 Prompt 调整为:
将代码语言 Stylus 的英文文本翻译成中文,相关的专有名词不做翻译

常见问题 (FAQ)
FileNotFoundError: [Errno 2] No such file or directory.—— 源文件或目标文件路径有误,请仔细检查路径拼写。openai.error.Timeout: Request timed out: HTTPSConnectionPool(host='api.openai.com', port=443)—— 连接超时,通常是网络问题,可能需要配置科学上网环境。openai.error.AuthenticationError: No API key provided.—— 未找到有效的 API_KEY。请确认 KEY 是否有效,或者写入环境变量后是否重启了编辑器/系统。
OpenAI 在线调试工具介绍
OpenAI 官方提供了在线调试工具,可在其中测试所有 API 接口:包括生成图像、上传音视频转文字、翻译、创建聊天机器人、微调模型等。工具内部分目录还附带了 Markdown 说明文件,简要介绍各模块的用法,方便快速上手。

提示:使用前请先查阅“项目说明”文档
