2017-03-24 16 views
1

だからファイルを読み込んで各行の先頭に行番号を追加する必要があります。タイトルと同じように。どうやってやるの?例えばファイル内の各行の先頭に行番号を追加するには

、ファイルの内容がされた場合:

This 
is 
a 
simple 
test 
file 

これらの6行、私は

1. This 
2. is 
3. a 
4. simple 
5. test 
6. file 

にそれを有効にする必要があり、元のコンテンツを保ち、ちょうどで行番号を追加します始まり。

私のコードは、これまでのようになります。

def add_numbers(filename): 
    f = open(filename, "w+") 
    line_number = 1 
    for line in f.readlines(): 
     number_added = str(line_number) + '. ' + f.readline(line) 
     line_number += 1 
     return number_added 

しかし、それは本当に、結果として何も表示されません。私はそれを行う方法の手がかりがありません。どんな助け?

答えて

4

私はあなたのコードに表示いくつかの問題:

  • あなたのインデントが正しくありません。 def add_numbers():より下のものはすべて1レベル下にインデントする必要があります。
  • メソッドの最後にファイルハンドルを閉じることをお勧めします。

あなたにも同様の質問がありましたhere。そこに掲載されているさまざまなソリューションを見ると、fileinputを使って、あなたのファイルをインプレースで編集できるので、あなたの最善の策のようです。

import fileinput 
def add_numbers(filename): 
    line_number = 1 
    for line in fileinput.input(filename, inplace=True): 
     print("{}. {}".format(line_number, line)) 
     line_number += 1 

はまた、私は、これは、より簡単に別の変数のタイプを処理するので、それらを一緒に追加する代わりに、2つの文字列を結合するためにformatを使用することに注意してください。形式の使い方の良い説明はhereです。

関連する問題