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

时间:2015-03-27 18:45:39

标签: python string

我正在编写一个迷你diceware程序,旨在从用户那里获取真实骰子的输入,查找值,并打印出他们的diceware密码。

我目前的代码工作正常,通过搜索5位数的diceware标识符(例如34465 jilt)从单词列表中提取数字和单词。

但是,我希望将密码短语打印成一行,而不是数字关联。例如如

“jilt load re open snap”而不是

34465 jilt

加载

目前这是我正在使用的代码:

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

有关如何改变最后几行以做我希望的建议吗?

感谢split()建议。这是我的解决方案:

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)

2 个答案:

答案 0 :(得分:1)

您可以使用split分解line并仅提取数字中的单词。

答案 1 :(得分:1)

你可以在这里使用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