2015-12-14 67 views
0

好吧,所以我倒了這個網站,我找不到任何可行的東西。 這裏是我的代碼從文本文件中使用python一次打印一行

print("Type the filename") 
file_again = raw_input("> ") 

lines = [6] 
with open(file_again, 'r') as f: 
    lines = f.read().splitlines() 
for line in lines: 
    print line 

,但我無法得到它的行打印出來線和所有這將是在每行一個數字。我也想使用一個計數器,但是我無法正確理解這個語法。我試圖枚舉,但沒有工作了很適合我

+2

您正在閱讀一行'.read()',然後分割該行'.splitlines()'。使用'.readlines()'。 –

+0

該代碼確實逐行打印出來。你需要在前面的行號?然後在枚舉(行,1):'中嘗試輸入num。 – tdelaney

+0

您需要告訴我們您希望輸出得到什麼幫助。一個簡單的描述...一個例子... – tdelaney

回答

1
print("Type the filename") 
file_again = raw_input("> ") 

with open(file_again, 'r') as f: 
    lines = f.readlines() 

for num, line in enumerate(lines, 1): 
    print "%s: %s" % (num, line) 

基本上,你有兩個問題:

  1. 您需要循環線路。爲此,請使用readlines(),它將返回列表中可以遍歷的所有行。
  2. 您需要打印一個計數器和行值。爲此,enumerate()將在for循環中簡潔地爲您提供一個計數器。然後,格式化打印的行以顯示計數器和行值。
+0

非常感謝你。這就是我需要的。所以枚舉完全起什麼作用。 – Bryan

+0

它提供了一個計數器在指定的增量,並讓你直接調用計數器。 https://docs.python.org/2/library/functions.html#enumerate – economy

+0

感謝很多人的知識就是力量... – Bryan

0

Python中的文件對象是迭代器。所以,你可以通過它們直接迭代:

from __future__ import print_function # get Python 3 printing in Python 2 

with open(file_again) as fobj: 
    for lineno, line in enumerate(fobj, 1): 
      print('{}: {}'.format(lineno, line), end='') 

end=''換行不添加到打印,因爲每條線在其後面的新行了。

這種方法的優點是,您可以輕鬆處理大文件,因爲您不需要一次讀取整個文件。

相關問題