You are on page 1of 5

csv file handling

Reading and writing data to a file using the standard file methods in Python means that
the data is read as a string. This means that you may need to use string slicing to select
the data that you want. It is often easier to work with CSV files using the csv library.

In [3]:
'''

reading contents of csv file row by row

'''

import csv

f0 = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder

csv_f = csv.reader(f0) # returns a reader object which iterates over lines


#print(csv_f[,:1])

iter=1

for row in csv_f:

print(row)

iter+=1

if iter > 10:

break

#if iter in range(10):

#print(row)

#iter+=1
#else:

#break

#for e in row:

#print(e)

#print(row)

#for row in csv_f:

#print(row[2])

['Jackson', 'Thompson', 'jackson.thompson@hotmail.com']

['Luke', 'Wallace', 'luke.wallace@lycos.com']

['David', 'Wright', 'david.wright@hotmail.com']

['Nathaniel', 'Butler', 'nathaniel.butler@aol.com']

['Noah', 'Simpson', 'noah.simpson@hotmail.com']

['Eli', 'Mitchell', 'eli.mitchell@aol.com']

['Xavier', 'Shaw', 'xavier.shaw@gmail.com']

['Josiah', 'Harrison', 'josiah.harrison@aol.com']

['Nolan', 'Thompson', 'nolan.thompson@aol.com']

['Avery', 'Martin', 'avery.martin@yahoo.com']

In [19]:
'''

reading contents of csv file element by element

'''

import csv

f = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder/

with f:

reader = csv.reader(f)

for row in reader:

for k in row:

print(k)

ame

N
Age

30

25

43

76

19

In [4]:
'''

reading contents of csv file in a dictionary format

'''

import csv

f = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder/

with f:

reader = csv.DictReader(f)

for row in reader:

print(row)

{'Name': 'x', 'Age': '30'}

{'Name': 'y', 'Age': '25'}

{'Name': 'z', 'Age': '43'}

{'Name': 'p', 'Age': '76'}

{'Name': 'q', 'Age': '19'}

In [12]:
'''

doing something with the contents in csv file

'''

import csv

f = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder/

with f:

reader = csv.reader(f)

lt1=[]

sum1=0

for row in reader:

lt1.append(row[1])

print(lt1)

#print(lt1)

lt2=lt1[1:]

print(lt2)

for k in lt2:

sum1+=int(k)

print(sum1)

['Age', '30', '25', '43', '76', '19']

['30', '25', '43', '76', '19']

193

In [17]:
'''

skipping the header using next() method

'''

import csv

# reading data from a csv file 'Data.csv'

with open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder

reader = csv.reader(file, delimiter = ' ')

# store the headers in a separate variable,

# move the reader object to point on the next row

#headings = next(reader) (uncomment if you want to use the header names


next(reader)

# output list to store all rows

Output = []

for row in reader:

Output.append(row[:])

print(Output) # returns a list of lists

for row_num, rows in enumerate(Output):

print('data in row number {} is {}'.format(row_num+1, rows))

#print('headers were: ', headings)

[['x,30'], ['y,25'], ['z,43'], ['p,76'], ['q,19']]

data in row number 1 is ['x,30']

data in row number 2 is ['y,25']

data in row number 3 is ['z,43']

data in row number 4 is ['p,76']

data in row number 5 is ['q,19']

In [18]:
'''

write contents into csv file

'''

import csv

nms = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]]

f = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder/

with f:

writer = csv.writer(f)#returns a writer object which writes data into C


for row in nms:

writer.writerow(row)

In [21]:
'''

write contents of multiple rowa of data into csv file

'''

import csv

nms = [[1, 2, 3], [7, 8, 9], [10, 11, 12]]

f = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder/

with f:

writer = csv.writer(f)

writer.writerows(nms)

In [22]:
'''

write a dictionary into csv file

'''

import csv

f = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder/

with f:

fnames = ['first_name', 'last_name']

writer = csv.DictWriter(f, fieldnames=fnames)

writer.writeheader()

writer.writerow({'first_name' : 'John', 'last_name': 'Smith'})

writer.writerow({'first_name' : 'Robert', 'last_name': 'Brown'})

writer.writerow({'first_name' : 'Julia', 'last_name': 'Griffin'})

In [1]:
'''

Experiment 5 solution for python lab group p1

'''

import csv

with open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfolder

reader = csv.reader(file)

# output list to store all rows

namelist=[]

agelist=[]

professionlist=[]

Output = []

for row in reader:

Output.append(row[:])

#print(Output) # returns a list of lists

for ri, r in enumerate(Output):

if 'name' in Output[ri][0]:

namelist=Output[ri][1:]

#print(namelist1)

if 'age' in Output[ri][0]:

agelist=Output[ri][1:]

#print(agelist1)

if 'profession' in Output[ri][0]:

professionlist=Output[ri][1:]

#print(professionlist1)

voterlist={}

scount=0

for i,j in enumerate(agelist):

if int(j) > 18:

voterlist.update({namelist[i]:professionlist[i]})

if professionlist[i] == 'student':

scount+=1

print(voterlist)

print('there are ',scount, ' number of student voters')

f1 = open('C:/Users/mmray/.spyder-py3/ippclasscodes/ippclasscodes/funfo

with f1:

fnames = ['name', 'profession']

writer = csv.DictWriter(f1, fieldnames=fnames)

writer.writeheader()

for k in voterlist:

writer.writerow({'name':k , 'profession':voterlist[k]})

{'z': 'software', 'q': 'student', 'r': 'manager'}

there are 1 number of student voters

In [ ]:

In [ ]:

You might also like