ฉันพยายามแยกวิเคราะห์ไฟล์ 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
หรือไม่?