csv file how to modify the row

Steven D'Aprano steve at REMOVETHIScyber.com.au
Tue Dec 27 21:39:54 EST 2005


On Tue, 27 Dec 2005 14:45:16 -0800, muttu2244 wrote:

> Hi everybody
> 
> 
> Am trying to read a csv file "temp.csv", which has the below info,
> 
> 
> compName       macAddr                ipAddr
> opSys
> 
> 
> Chris-Dev             0003469F44CC      10.160.24.226   Microsoft
> Windows XP Professional

[snip]

Why are you calling it a Comma Separated Values file when there are no
commas separating values in it?


> am trying to read it in the following way--
> 
> 
> 
>>>> import csv
>>>> infoFile = open ('c:\\temp.csv','r')
>>>> rdr = csv.reader(infoFile)
>>>> for row in rdr:
> 
> 
> ...     if row[0] == infnList[0]:
> ...             if not row[1] == infnList[1] or not row[2] ==
> infnList[2]:


Should we know what infnList is, or shall we guess?

What does your code do next? 
if condition: (do what?) else: (do what?)

 
> now am comparing my comp Name  with the "compName" fields, and if it
> matches i ll then compare for the "mac address" and "ip address". if
> they are not matching with my system, i have to modify them there
> itself, i mean i have to update "mac address" and "ip address" in the
> same row itself, i dont want to append the information with another row

If I have understood what you are saying, you only need to modify one
single row in the file, the row that matches your personal computer. Why
don't you just open the data file in Notepad or Wordpad, use "Find" to
search for the row you want, and modify it by hand?

If that is not what you need to do, would you like to try explaining what
you need to do a little more carefully? Do you have to modify every line,
or just some? If the data in your temp.csv file is suspect, where are you
getting the good data from?


> to the "temp.csv" file. otherwise it will have two similar computer
> names for two rows, which i dont want to happen.

Why not? Chris-Dev and Kris-Dev are similar but not the same, shouldn't
they get different rows?


Some questions for you to think about:

1. Is the data file small enough to all fit into memory (less than, say,
ten megabytes)?

2. Can you follow this algorithm?

open data file for reading
read everything into a list of strings
close data file
walk the list modifying each string if it needs fixing
open data file for writing
write the list of strings
close data file


3. What about this algorithm?

open data file for reading
open temporary update file for writing
for each record in data file:
    is record correct?
    yes: write it unchanged to update file
    no: fix the record and write it to update file
close data file
close update file
delete obsolete data file
rename update file to data file




-- 
Steven.




More information about the Python-list mailing list