我想自动生成多个文件。我有一个工作正常的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方法并为每个连续的输出文件指定唯一名称的东西。
答案 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")