1

I want to automate multiple file generation. I have a working Python script to generate a single file with sentences that mimic a domain of language I'm interested in (code from here). The code below takes the text my_domain.txt as input, trains a Markov language model on it, then outputs a file with 10 fake sentences that read pretty similarly to the ones in the input text.

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())

What I want to do now is use this method to generate 1000+ files, each with a slightly unique name, like this:

fake1.txt

fake2.txt

fake3.txt

I'm guessing that I may need a different method of printing to a file. But when I search on techniques, I don't find anything that helps me run the markovify method repeatedly AND gives unique names to each successive output file.

1 Answer 1

2

Use a loop that creates filenames, use with open(..) syntax to make sure they get closed ok even if exception arises.

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")
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.