2015年10月27日火曜日

Python | リストのインデックスと値を同時に取得する

テキストファイルの指定行をコメントアウトする作業をPythonで自動化することを考えます。
ここでは、コメントアウトする方法として行頭に"$"を付けることにします。

処理の流れを書き出すと、


  1. コメントアウトしたい行(スタート行とエンド行)を指定しておく
  2. テキストファイルの全行をリストに格納する
  3. リストに格納した行の内容を順番に書き出す
  4. 1.で指定した行に達したら、行頭に"$"を付けて書き出す作業をエンド行まで繰り返す
  5. エンド行より後の行からはリストに格納した内容のまま書き出す
---
    start_line = 9 #コメントアウトしたいスタート行番号
    end_line = 641739 #コメントアウトしたい最終行番号

    for index,line in enumerate(line_list):
        if start_line-2 < index < end_line:
            savefile.write("$" + line)
        else:
            savefile.write(line)
---

この時、行番号とリストのインデックスが対応するため、enumerate()関数でリストの中身とインデックスを同時に取得しています。

SyntaxHighlighter