【发布时间】:2020-06-01 21:04:51
【问题描述】:
所以基本上我买了一本书,教python的基础知识以及如何创建随机数生成器,所以我决定更进一步,制作一个随机密码生成器我在网上找到了一个教程,它给了我一个很好的例子,说明了为什么以及用于制作密码生成器的内容,但我希望将输出保存到 .txt 文件中,我不知道我需要实现什么才能获得我想要的结果,这就是我使用 python3 所拥有的。
import random
chars = 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!, @,#$%^&*.'
number = input('Number of passwords - ')
number = int(number)
length = input('password length? - ')
length = int(length)
answer = input
for P in range(number):
password = ''
for C in range(length):
password += random.choice(chars)
print(password)
password = open("passlist.txt", "a")
password.write(password)
password.close()
file = open('passlist', 'w')
file.write(password)
file.close()
这是我在 shell 中得到的
Traceback (most recent call last):
File "C:\User\Desktop\passgen.py", line 21, in <module>
password.write(password)
TypeError: write() argument must be str, not _io.TextIOWrapper
【问题讨论】:
-
您同时调用了密码字符串
password和文件对象password。换一个... -
为您的文件对象使用不同的变量名。
password = open(...)会覆盖您生成的密码。 -
顺便说一句,您将输入函数分配给了一个变量:
answer = input。没有理由这样做。 -
将您的密码生成器放入一个函数中,并根据需要多次调用该函数以生成更多密码。
-
我摆脱了答案 = 输入谢谢,现在该函数将是一个全局变量,因为我试图制作一个菜单以便我可以导入密码生成器这与您的解释类似,但没有菜单部分?
标签: python python-3.x file-io