[英]Python search for input in txt file
当我的脚本运行时,它要求输入。 然后检查该输入以查看它是否在文本文件中。 如果是,则打印文本。 我下面的代码是我所拥有的,但它似乎不起作用,任何帮助将不胜感激!
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")
表达方式
line.strip().split('\n')
不会改变绑定到 name 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:
已经拆分成行,因此列表最多只有一个元素,因此您应该省略它。
对我有用,优化的代码是:
result = any(line.startswith(discordname) for line in file.splitlines())
if(result):
file.close()
print "works"
您正在尝试使代码更复杂。 首先使用'with'打开一个文本文件,因为它更灵活,不需要关闭。 然后,您可以使用 readlines() 而不是使用 strip。 此函数将每一行转换为一个列表,或者您也可以使用方法 read(),它按原样显示所有结果。
所以,
通过使用 readlines,您可以将一行中的用户输入作为列表进行查看,而通过使用 read,您可以查看每个单词。 这是解决方案:
discordname = input("What's your discord name? ")
with open('rtf.txt') as file:
contents = file.readlines()
if discordname in contents:
print("It exits")
这是解决方案:
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")
我希望它能解决你的问题。谢谢
您可能也在尝试获取字符串作为输入。 我建议这样做:
discordname = raw_input("What's your discord name? ")
with open('rtf.txt') as f:
for line in f:
if discordname in line:
print "works"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.