创建最大长度字符的文件,并在任意位置插入一个单词x次

时间:2019-05-31 21:29:38

标签: python string random python-3.7

我能够创建随机数据文件,但是当尝试在随机位置插入单词x次时,文件的长度变得大于传入的最大长度。

我尝试创建一个带有随机字符的文件-字长*需要插入的次数,然后将其添加到随机位置,但这只是导致将其附加到文件末尾。

def gen_file(word:str, frequency:int, maxlength:int):
    contents = ''
    i = 0

    while i < frequency:
        for x in range(0, maxlength):
            ran_num = random.randint(0, maxlength-1)
            if x == ran_num:
                contents = contents + word
                i = i+1
            else:
                contents = contents + random.choice(string.ascii_letters)

    file = open("new.txt","w")
    file.write(file_contents)
    file.close()

如果我将该函数称为gen_file('hello',3,5000)。我希望输出文件的长度为5000个字符,并在3个随机位置插入“ hello”,但是我得到的输出文件的范围为10,000-20,000个字符。

1 个答案:

答案 0 :(得分:0)

您的问题就在控制流程的顶部:

while i < frequency:
    for x in range(0, maxlength):

对于3个插入中的每个 ,您生成5000个x字符。相反,您需要在一个的5000个集合中选择三个随机位置。我建议您通过在开始时选择三个随机位置来做到这一点。按顺序排序。然后写文件,跟踪索引位置。每当您到达随机列表中的下一个位置时,请停止插入“ hello”。

这能让你前进吗?