【发布时间】:2021-02-19 09:26:53
【问题描述】:
我知道很多人问这个问题,但我尝试了很多方法,但没有一个对我有用。
我正在使用 python 编写随机字符串生成器,但是当我将它保存到文本文件时,它只包含最后一行。
但在命令行中它会打印所有行。
这是我的代码。
import sys
import random
ch = 'ZXCVBNM<>?":LKJHGFDSAQWERTYUIOP{}|+_)(*&^%$#@!~zxcvbnm,./;lkjhgfdsapoiuytrewq`1234567890'
nop = input('How Many password do you want to create?')
nop = int(nop)
lop = input('Whats the length of passwords?')
lop = int(lop)
for p in range (nop):
password = ''
for l in range(lop):
password += random.choice(ch)
print(password)
pwd = open("pwd.txt", "w")
pwd.write(password)
pwd.close()
【问题讨论】:
-
以
w模式打开文件会擦除现有内容。而你在循环中这样做,所以每次通过循环,它都会删除所有以前的内容。将open()移到循环之前,将close()移到之后。 -
以写入模式打开文件会覆盖其数据。将行
pwd = open("pwd.txt", "w")移到嵌套循环之外,并仅在完成后关闭文件。 -
另外,您可能希望在每个密码后写一个换行符,否则所有密码将合并在一行中。
标签: python python-3.x