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 *
# command arguments
parser = argparse.ArgumentParser(description='csv to postgres',\
fromfile_prefix_chars="@" )
parser.add_argument('file', help='csv file to import', action='store')
args = parser.parse_args()
csv_file = args.file
# open csv file
with open(csv_file, 'rb') as csvfile:
# get number of columns
for line in 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 row in reader:
content = list(row[i] for i in included_cols)
print content
그리고 이것이 내가 제외하고 각 행에 대해 원하는 특정 열만 인쇄 할 것으로 기대합니다. 마지막 열만 얻습니다.
"rb"
는로 전달하는 데 적합합니다 csv.reader
.
'rb'
플래그를open()
? 간단하지 않아야r
합니까?