csvモジュールを使用してcsvファイルから特定の列を読み取りますか?

| | | | | | | | | | | | | | | | | | | |

csvファイルを解析して、特定の列のみからデータを抽出しようとしています。

csvの例:

  ID | Name | Address | City | State | Zip | Phone | OPEID | IPEDS | 10 | C ... | 130 W .. | Mo .. | AL ... | 3 .. | 334 .. | 01023 | 10063 |  

ID Name ZipおよびPhone

私が調べたコードにより、特定の列を対応する番号で呼び出すことができると思いました。つまり、 Name 2に対応し、 row [2] を使用して各行を繰り返すと、列2のすべてのアイテムが生成されます。

これまでに行ったことは次のとおりです。

  import sys、argparse、csv from settings import *#コマンド引数parser = argparse.ArgumentParser(description = "csv to postgres"、fromfile_prefix_chars = "@")parser.add_argument( "file"、help = "インポートするcsvファイル"、アクション= "store")args = parser.parse_args()csv_file = args.file#open(csv_file、 "rb")をcsvfileとして使用してcsvファイルを開く:#csvfile.readlines()の行の列数を取得:array = line .split( "、")first_item = array [0] num_columns = len(array)csvfile.seek(0)reader = csv.reader(csvfile、delimiter = "")included_cols = [1、2、6、7] forリーダーの行:content = list(row [i] for i in include_cols)print content  

そして、これにより、各行に必要な特定の列のみが出力されることを期待しています。そうではありません。最後の列のみを取得します。