首页 > 解决方案 > 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 新手,但我仍然在循环。

标签: pythongoogle-translate

解决方案


假设有 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 或执行一些其他代码恶作剧来做到这一点。


推荐阅读