【问题标题】:Python - Googletrans for multiple txt files in loopPython - 循环中的多个 txt 文件的 Googletrans
【发布时间】:2021-04-28 21:11:46
【问题描述】:

我正在寻求运行 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,但我仍然在循环。

【问题讨论】:

  • 这看起来不错,但可能是Code Review Stack Exchange 的问题。你在问什么问题?您是在问如何将其变成一个循环,还是在问这是否可行?
  • 感谢您的帮助和建议。我在问如何把它变成一个循环。
  • 文件名的格式是trans_page_1.txt还是trans_page_001.txt?另外,最大页码是多少?
  • 另外,它可能有助于编辑问题以使其更清楚:-)
  • 很高兴这样做 - 努力赢得声誉以支持投票!再次感谢。

标签: python google-translate


【解决方案1】:

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

【讨论】:

  • 解决了!非常感谢您的帮助和耐心解决我不清楚的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 2021-02-07
  • 1970-01-01
  • 2023-01-20
  • 2021-12-09
  • 2015-10-25
  • 2018-03-29
相关资源
最近更新 更多