【问题标题】:How to write more than one variable in a text file - Python?如何在文本文件中写入多个变量 - Python?
【发布时间】:2018-04-18 22:13:20
【问题描述】:

我正在尝试创建密码生成器。该程序应该生成一个随机密码列表,然后将它们写入.txt 文件。使用下面的代码,程序只写最后生成的密码,而不是全部。

#!/usr/bin/python3
import random

#The Characters List
Characters = "abcdefghijklmnopqrstuvwxyz!@#$%^&*()_+-=[];'\,./ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"

#Password Generator

#Get the Input form the User
Length = input("Password Length > ")
Length = int(Length)

#Get the Input form the User
PasswordNumber = input("Number of Passwords > ")
PasswordNumber = int(PasswordNumber)

for p in range(PasswordNumber):
    Password = ""
    for i in range(Length):
        Password += random.choice(Characters)
    print(Password)

f= open("PasswordList.txt","w+")
f.write(Password)
f.close()

我的结果:

Password Length > 10
Number of Passwords > 5
LgoQ$i%e_O
![i/NxsqQr
n-ydWA/9.5
ksI,jg]#8q
![xrU#=2@#

但是当我打开“PasswordList.txt”时,里面的文字只有:![xrU#=2@#,它生成的最后一个密码。 我还希望密码与终端上看到的格式相同:

LgoQ$i%e_O
![i/NxsqQr
n-ydWA/9.5
ksI,jg]#8q
![xrU#=2@#

不是这样的:

LgoQ$i%e_O![i/NxsqQrn-ydWA/9.5ksI,jg]#8q![xrU#=2@#

【问题讨论】:

  • 在 for 循环中添加文件打开、写入和关闭语句以使其工作

标签: python python-3.x text passwords


【解决方案1】:

您只会得到一个密码,因为这是您告诉它的:生成并打印出所有密码。一旦它们都生成了,然后您只需将一个密码写入文件。

您需要将该打印语句拉入循环:

f = open("PasswordList.txt","w+")

for p in range(PasswordNumber):
    Password = ""
    for i in range(Length):
        Password += random.choice(Characters)
    print(Password)

    f.write(Password + "\n")

f.close()

要获得相同的格式,只需在每个write 中添加一个换行符,或使用writeln 方法。

示例输出,包含 10 个长度为 8 的密码:

w@wz+]S2
8t=G#r,F
H$aITs0&
=dMbird6
Y)Dpu]EZ
K\ZDNI*M
L6(2L_7_
VJL3GxF$
.nRt!XIa
=OXP8=aC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 2021-05-21
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多