我能够创建随机数据文件,但是当尝试在随机位置插入单词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个字符。
答案 0 :(得分:0)
您的问题就在控制流程的顶部:
while i < frequency:
for x in range(0, maxlength):
对于3个插入中的每个 ,您生成5000个x
字符。相反,您需要在一个的5000个集合中选择三个随机位置。我建议您通过在开始时选择三个随机位置来做到这一点。按顺序排序。然后写文件,跟踪索引位置。每当您到达随机列表中的下一个位置时,请停止插入“ hello”。
这能让你前进吗?