ingh.am
ingh.am

Reputation: 26822

Amend a csv file in Python

So I have a CSV file with a bunch on IP's in it:

192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5,192.168.0.6,192.168.0.7,192.168.0.8,192.168.0.9,192.168.0.10

And I would like to add a new ip to the end of this csv file. Currently I am using this code to read in the data:

requests = csv.reader(open("file.csv", "rb"))
for request in requests:
    for ip in request:
        print "In List: " + str(ip)

This will print:

In List: 192.168.0.1
In List: 192.168.0.2
In List: 192.168.0.3
In List: 192.168.0.4
In List: 192.168.0.5
...

And then to write one to the end I've tried many methods, including this:

requestWriter = csv.writer(open("file.csv", "w"))
requestWriter.writerow(["192.168.0.X"])

This however replaces the whole file with the new entry. I then tried to loop through existing records and add them to the new file but this split the IP's up by their .'s! Am I missing something here? Surely there is an amend option for the csv reader/writer?

Thanks

Upvotes: 1

Views: 1004

Answers (1)

systempuntoout
systempuntoout

Reputation: 74134

Why don't you just append a new row?

fd = open('file.csv','a')
fd.write(yourCsvRowWithNewIP)
fd.close()

Upvotes: 9

Related Questions