在python中从一行打印特定文本

2024-04-26 03:01:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个迷你的diceware程序,它可以从使用真实dice的用户那里获取输入,查找值,并打印出他们的diceware密码短语。你知道吗

我目前的代码运行良好,通过搜索5位diceware标识符(例如34465 jilt)从单词列表中提取数字和单词。你知道吗

但是,我希望将密码短语打印为一行,而不使用数字关联。e、 g.as公司

“jilt load re open snap”而不是

34465甩

负载

等等

目前我使用的代码是:

p_length = int(raw_input("How many dicewords?"))
roll_list = []
for i in range(p_length):
    seq1 = (raw_input("roll 1:"), raw_input("roll 2:"),
            raw_input("roll 3:"), raw_input("roll 4:"),
            raw_input("roll 5:"))
    str1 = "".join(seq1)
    roll_list.append(str1)
    print roll_list

with open("name_list.txt") as f:
    for line in f:
        for x in roll_list:
            if x in line:
                print line

有没有关于如何改变最后几行的建议?你知道吗

谢谢你的建议。以下是我的解决方案:

passphrases = []
with open("name_list.txt") as f:
    for line in f:
    for x in roll_list:
        if x in line:
            var1 = line.split(" ")
            var2 = var1.pop( )
            passphrases.append(var2.rstrip('\n'))

print " ".join(passphrases)

Tags: in密码forinputrawaslineopen
2条回答

您可以使用split来分解line,只提取不带数字的单词。你知道吗

您可以使用any这里。更新了只是为了修理。你知道吗

for line in f:
    if any(i for i in roll_list if i in line.strip()):
        print line.strip().split(" ")[-1]

>>>hold romeo

相关问题 更多 >