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()'的參數嗎? –
有沒有其他的選擇? –