Python在txt文件中搜索输入

时间:2018-04-28 10:14:07

标签: python python-3.x scripting

当我的脚本运行时,它会要求输入。然后检查该输入以查看它是否在文本文件中。如果是,则打印文本。我下面的代码是我所拥有的,但它似乎没有工作,任何帮助将不胜感激!

discordname = input("What's your discord name?: ")
file = open('rtf.txt')
for line in file:
    line.strip().split('/n')
    if line.startswith(discordname):

        file.close()
        print("works")

5 个答案:

答案 0 :(得分:1)

表达式

line.strip().split('\n')

不会改变绑定到名称line的信息,该信息保持不变。相反,它返回一个新值。您需要将新值绑定到名称才能使用它。这个例子可能会有所帮助:

In [1]: a = "  v  "

In [2]: a.strip()
Out[2]: 'v'

In [3]: a
Out[3]: '  v  '

In [4]: b = a.strip()

In [5]: a
Out[5]: '  v  '

In [6]: b
Out[6]: 'v'

然后split('\n')(请注意,您可能希望\而不是/)进一步返回按换行符分割的子字符串列表。请注意,这不是很有用,因为for line in file:已经拆分了行,所以列表最多只有一个元素,所以你应该省略它。

答案 1 :(得分:0)

适合我,优化代码是:

result =  any(line.startswith(discordname) for line in file.splitlines())
if(result):
    file.close()
    print "works"

答案 2 :(得分:0)

您正在尝试使代码更复杂。首先打开一个文本文件,使用',因为它更灵活,不需要关闭。然后,您可以使用readlines()代替使用strip。此函数将每行转换为列表,或者您也可以使用方法read(),它会按原样显示所有结果。

所以,

通过使用读取线,您可以将一行中的用户输入作为列表进行查看,通过使用read,您可以查看每个单词。这是解决方案:

C#

答案 3 :(得分:0)

以下是解决方案:

discordname = input("What's your discord name?: ")
with open('rtf.txt', 'r') as f:
    for line in f.readlines():
        if line.startswith(discordname):
            print ("it works")

我希望它能解决你的问题。感谢

答案 4 :(得分:0)

您可能也尝试将字符串作为输入。我建议这个:

discordname = raw_input("What's your discord name? ")
with open('rtf.txt') as f:
    for line in f:
        if discordname in line:
            print "works"