Python CSV writer confusion.
googleboy
mynews44 at yahoo.com
Thu Sep 15 06:56:27 EDT 2005
Hi. I am trying to write out a csv file with | instead of comma,
because I have a field that may have many commas in it. I read in a
csv file, sort it, and want to write it out again.
I read the example that says:
import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(someiterable)
The "someiterable" is what is confusing me.
class Image(object):
def __init__(self, title, date, genre, data, value, filename):
params = locals()
del params['self']
self.__dict__.update(params)
def __repr__(self):
all_items = self.__dict__.items()
return '%s,%s,%s,%s,%s, %s' % (self.title, self.date,
self.genre, self.data, self.value, self.filename)
def read_images(filename):
csv_file = open(filename, "rb")
reader = csv.reader(csv_file, dialect='excel', delimiter='|')
images = [Image(*[field.strip() for field in row]) for row in
reader]
csv_file.close()
return books
def sort_images(filename, *attr_names):
csv_file = open(filename, "rb")
reader = csv.reader(csv_file, dialect='excel', delimiter='|')
if __name__ == '__main__':
images = read_images(r"D:\path\to\imagespipe.csv")
def get_key(*attr_names):
def key(image):
return [getattr(image, name) for name in attr_names]
return key
images.sort(key = get_key("filename"))
t = open(r'D:\path\to\filename_sort1.csv', 'w')
for image in images:
print book
#t.write('%s\n' % book) %Before I needed | delimited, this
worked
#csv.writer(t, dialect='excel', delimiter='|')
output = csv.writer(t, dialect='excel', delimiter='|')
output.writerows()
#output.writerows(image)
#output.writerow(image)
t.close()
This returns an error that says "Error: sequence expected"
My understanding of this is that I am creating a list of lists and I am
iterating over it (for image in images), and that image is a list, and
is therefore iterable...?
I am a bit new at this, and would greatly appreciate any assistance.
TIA
googleboy
More information about the Python-list
mailing list