I've been working this problem way too long, please explain to me why the header keeps repeating in my output csv.
I have an input csv with this data:
- name,house
- "Abbott, Hannah",Hufflepuff
- "Bell, Katie",Gryffindor
- "Bones, Susan",Hufflepuff
- "Boot, Terry",Ravenclaw
The problem requires reversing last and first name, separate name into two columns, and make a new header with 3 columns for the output csv. Here's what I have:
while True:
try:
# open file
with open(sys.argv[1]) as file:
# make reader
reader = csv.reader(file)
# skip first line (header row)
next(reader)
# for each row
for row in reader:
# identify name
name = row[0]
# split at ,
name = name.split(", ")
# create var last and first, identify var house
last = name[0]
first = name[1]
house = row[1]
# writing the new csv
with open(sys.argv[2], "a") as after:
writer = csv.DictWriter(after, fieldnames=["first", "last", "house"])
# HEADER ONLY NEEDS TO OCCUR ONCE
writer.writeheader()
writer.writerow({"first": first, "last": last, "house": house})
sys.exit(0)
my output csv:
- first,last,house
- Hannah,Abbott,Hufflepuff
- first,last,house
- Katie,Bell,Gryffindor
- first,last,house
- Susan,Bones,Hufflepuff
I've tried removing the while loop, unindenting and indenting, writing a row manually with the header names (which caused errors). Please help. Thanks!
source https://stackoverflow.com/questions/72340931/header-in-csv-file-printing-every-other-line
Comments
Post a Comment