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