如何在Python中自动生成多个文件

时间:2018-11-28 20:41:49

标签: python

我想自动生成多个文件。我有一个工作正常的Python脚本,可以使用模仿我感兴趣的语言域的句子生成单个文件(来自here的代码)。下面的代码以文本my_domain.txt作为输入,在其上训练马尔可夫语言模型,然后输出一个文件,其中包含10个伪造的句子,其读法与输入文本中的相似。

import pandas as pd
import markovify #Markov Chain Generator
import sys

with open(r'/my_domain.txt') as f:
    text = f.read()

text_model = markovify.Text(text) #creates a language model from the input text

sys.stdout = open('fake.txt', 'w') #redirects my print() statement below to a file

for i in range(10): #10 lines of fake sentences.
    print(text_model.make_sentence())

我现在想做的是使用此方法生成1000多个文件,每个文件的名称都略有唯一,如下所示:

fake1.txt

fake2.txt

fake3.txt

我猜测我可能需要一种不同的方法来打印文件。但是,当我搜索技术时,找不到任何可以帮助我重复运行markovify方法并为每个连续的输出文件指定唯一名称的东西。

1 个答案:

答案 0 :(得分:2)

使用创建文件名的循环, 与open(..)语法一起使用,以确保即使出现异常也可以将它们关闭。

for nr in range(100):
    with open("file{:04}.txt".format(nr), "w") as f:
        for i in range(10): #10 lines of fake sentences.
            f.write(text_model.make_sentence() + "\n")