python - Python - 循环中的多个 txt 文件的 Googletrans
问题描述
我正在寻求运行 googletrans 来翻译单个文件夹中的一系列 300 个 .txt 文件。我正在努力构建一个允许我运行每个文件的翻译并将输出写入新的 .txt 文件的循环。Googletrans 对批量翻译有限制,所以我很乐意一次将迭代限制为 50 个文件。
这是翻译单个文件的代码。它打印原始 txt 文件,然后是翻译文件,最后将文件输出到一个新的 txt 文件中。
from googletrans import Translator
f = open('Translation Project\page_323.txt', 'r')
if f.mode == 'r':
contents = f.read()
print(contents)
translator = Translator()
result = translator.translate(contents, dest='en')
print(result.text)
with open('Translation Project\trans_page_323.txt', 'w') as f:
f.write(result.text)
有什么想法吗?Python 新手,但我仍然在循环。
解决方案
假设有 999 页,文件格式为trans_page_1.txt
而不是trans_page_001.txt
,并且第一页是第 1 页,而不是第 0 页:
from googletrans import Translator
translator = Translator()
for page_number in range(1, 999):
f = open(f'Translation Project\page_{page_number}.txt', 'r')
if f.mode == 'r':
contents = f.read()
print(contents)
result = translator.translate(contents, dest='en')
print(result.text)
with open(f'Translation Project\trans_page_{page_number}.txt', 'w') as f:
f.write(result.text)
这不会限制翻译的文件,但您可以通过将最大页面更改为 50 或执行一些其他代码恶作剧来做到这一点。
推荐阅读
- dataframe - 需要从第二行中减去作为每个 ID 的基线值
- python - 如何从 google-play 网站上的无限滚动中抓取所有链接
- c++ - 如何正确检查指针是否属于分配的块?
- c# - 将示例 JSON 请求正文(不是响应)转换为 c# 对象列表的语法是什么?
- python - 无法找出 Django KeyError 的原因
- ruby - 无法将我的简单 Sinatra 应用程序部署到 Heroku
- c++ - 为什么下面的代码不能在 MSVC 中编译而在 g++ 中编译?
- python - 为什么我的 tkinter 水平滚动条在右下角被压扁,但垂直滚动条看起来正常?
- javascript - Google Firebase this.state.posts.map() 不是函数
- reinforcement-learning - 训练有素的 DRL 模型如何以较少的状态运行?