我想根据用户输入打印出一行特定的文本。到目前为止,我有这个:
list = open("/Users/nicejojo12/Desktop/Python/DictionaryDefinitions.txt")
listo = list.read()
nlines = 0
x = raw_input()
x.lower()
x.capitalize()
if listo.find(x) != -1:
linesr = listo.index(x)
defines = list.readlines(linesr)
print defines
print linesr
else:
print "Nope!"
但当我试用时,行号是错的,它没有打印出任何东西。这没有任何错误,所以我不知道出了什么问题。在
如何制作一个基于用户输入从文本文件中打开并读取特定文本行的程序?在
第一个问题:
x.lower()
和x.capitalize()
不更改字符串。在Python中无法更改字符串。只能创建新字符串。x.lower()
和x.capitalize()
创建新字符串。如果希望x
作为新字符串的名称,则需要亲自执行此操作:第二个问题:一旦你用
listo = list.read()
读入整个文件,你就在文件的末尾了。再次尝试读取该文件将不会再读取,因此defines = list.readlines(linesr)
无法读取任何内容。在一种更具Python式的方法是:
with
打开文件,这样它将自动关闭。在in
查找文本首先,不要使用list作为变量名。您正在隐藏内置函数
list
。在第二,不要用
^{pr2}$read()
读文件,用readlines()
读它,因为你真的更喜欢行。在相关问题 更多 >
编程相关推荐