number = int(input('Enter Line: '))
f = open('path.txt','r')
text = f.readline(number)
print(text)
文件“path.txt”看起来是这样的:不打印正确的字符串
一号线
2号线
3号线尚未
,无论你输入什么号码,它仍然会返回一号线。
number = int(input('Enter Line: '))
f = open('path.txt','r')
text = f.readline(number)
print(text)
文件“path.txt”看起来是这样的:不打印正确的字符串
一号线
2号线
3号线尚未
,无论你输入什么号码,它仍然会返回一号线。
你错误地使用了f.readline()
,通过这个方法一个参数不会返回一个特定的行号。此方法总是读取并返回下一行(本例中为第1行),并且您的参数实际上是作为子字符串运行的。
f.readline()
从文件中读取一行;一个换行符 (\ n)留在字符串的末尾,并且如果文件没有以换行符结束,则仅在文件的最后一行 处省略。 https://docs.python.org/3/tutorial/inputoutput.html#methods-of-file-objects
我相信你真的要找的用法是这样的:
number = int(input('Enter Line: '))
f = open('path.txt','r')
lines = f.readlines()
print(lines[number])
f.readlines()
读取并返回所有行,那么你可以索引。
我不是一个Python的家伙,但咋一看一个的文档告诉我,readline的正是这么做的......这一次读取一行开始在文件的开头。
试试这个:
f = open('path.txt','r')
print(f.readline())
print(f.readline())
这应该输出:
一号线2号线
传递给了Readline的参数是字节数读,而不是行号。
这可能帮助:http://www.tutorialspoint.com/python/file_readline.htm
功能readline()
(无功能参数)从文件中读取一行,因此,您的发言text = f.readline(number)
总是在光标返回行。
例如:
number = int(input('Enter Line: '))
f = open('path.txt','r')
print f.readline(number) => print line1
print f.readline(number) => print line2
对于你的情况,我认为你可以这样做:
number = int(input('Enter Line: '))
f = open('path.txt','r')
lines = f.readlines()
print lines[number] # if number is not greater than len(lines)
f.readlines()
将读取所有行的内存,如果你的文件非常大,它会吃掉所有记忆。所以我瘦你可以使用下面的代码。
for line_num, line in eneumerat(lines, 1):
if line_num == number:
print(text)
break
你读过'readline()'的参数吗? –
有没有其他的选择? –