I have a problem that I've been puzzling with so I thought it was time to ask the experts.

I have two csv files that I am trying to search between. One csv has a Title column, and a URL column. The second has a variety of columns but a Title column that matches the Title column of the first CSV. I want to search the larger CSV to see if a record exists for a particular title and if so append the corresponding URL into a column at the end of the sheet.

I have been browsing the various csv reader properties but I can't seem to find too many examples. Would I use the find function along with csv reader to accomplish this?

I would read in the first csv into a dictionary with title- url key-value pairs. Then go through the second large one line by line, and append the looked up values, and write it to a new file.
The code goes something like this (not tested):

import csv
urlReader = csv.reader(open('url.csv'), delimiter=' ', quotechar='|')#FIXME filename delimiter quote etc...
for row in urlReader:
largeReader=csv.reader(open('large.csv'), delimiter=' ', quotechar='|')#FIXME filename delimiter quote etc...
delimiter=' ', quotechar='|')#FIXME filename delimiter quote etc...
for row in largeReader:
    largeWriter.writerow(row+[url.get(row[???]),""]#FIXME ???=title column index

The dictionary suggestion was exactly what I needed. I've included the script that I got to work for me. This takes two semicolon delimited files in the format discussed above. It then searches a value from the larger csv against a smaller file with just a "Title" column and a "URL" column.

import csv
smallFile = csv.reader(open('/home/user/Desktop/smallfile.csv'), delimiter=';')
bigFile = csv.reader(open('/home/user/Desktop/bigfile.csv'), delimiter=';')
for row in smallFile:
for row in bigFile:
	if result in url:
		print result+";"+url[result]
		print result+";"+"no corresponding url"
This article has been dead for over six months. Start a new discussion instead.