Python 3home |
The module performs all delimiter parsing and removal, both comma and newline
import csv
filename = '../revenue.csv'
fh = open(filename) # 'file' object
reader = csv.reader(fh) # csv.reader object
headers = next(reader) # ['company','state','price']
mysum = 0.0
for fields in reader: # ["Haddad's", 'PA', '239.5']
row_val = fields[-1] # '239.5'
float_val = float(row_val) # 239.5
mysum = mysum + float_val # 239.5
print(mysum) # 662.010000000002
The module handles the delimiters, so we only need to pass to it a list of values for each row.
import csv
wfh = open('new_file.txt', 'w', newline='') # <B>newline=''</B> is necessary for Windows users
writer = csv.writer(wfh)
# writing a header row
writer.writerow(['id', 'first_name', 'last_name'])
# writing rows one at a time
writer.writerow(['23', 'James', 'Wilson'])
writer.writerow(['24', 'Pete', 'Johnson'])
# writing multiple rows
writer.writerows([['25', 'Marie', 'Davidson'], ['26',
'Donna', 'Peterville']])
wfh.close()
This class parses each line into a convenient dict
import csv
filename = '../revenue.csv'
fh = open(filename) # 'file' object
dreader = csv.DictReader(fh) # csv.DictReader object
headers = dreader.fieldnames # ['company', 'state', 'price']
mysum = 0.0
for row in reader: # {'company': "Haddad's", 'state': 'PA', 'price': 239.5'}
row_val = row['price'] # '239.5'
float_val = float(row_val) # 239.5
mysum = mysum + float_val # 239.5
print(mysum) # 662.010000000002
This class writes a convenient dict to each line of the file
import csv
wfh = open('new_file.txt', 'w', newline='') # <B>newline=''</B> is necessary for Windows users
dwrite = csv.DictWriter(wfh, ['company', 'state', 'price'])
# write the header row (based on the fieldnames supplied to DictWriter)
dwrite.writeheader()
# writing rows one at a time
dwrite.writerow({'company': 'Alpha Corp', 'state': 'PA', 'price': '99.39'})
dwrite.writerow({'company': 'Beta Corp', 'state': 'CA', 'price': '101.03'})
# writing multiple rows
writer.writerows([{'company': 'Alpha Corp', 'state': 'PA', 'price': '99.39'},
{'company': 'Beta Corp', 'state': 'CA', 'price': '101.03'}])
wfh.close()