GTXY20 wrote:
> Hi,
>
> I have a CSV file as follows:
>
> ID Products
> 1 a b c d
> 1 a e
> 2 a b c
> 2 a
> 3 b c
> 3 a
> 4 d
> 5 a d
>
> I am trying to write a script that will take the CSV file and output
> another text file as follows:
>
> ID Products
> 1 a
> 1 b
> 1 c
> 1 d
> 1 a
> 1 e
>
> etc.. for all of the ID's essentially I need to create a single instance
> for products for each ID - currently the products are separated by a
> space. I am thinking I need a for loop that will search on the space as
> a delimiter...
I should probably be teaching you to fish but tonight I have extra fish :-)
If the products are single words then this is very simple. Something like
inp = open('input.txt')
out = open('output.txt')
# Headers
inp.next()
out.write('ID\tProducts\n')
for line in inp:
fields = line.split()
prodId = fields[0]
products = fields[1:]
for product in products:
out.write('%s\t%s\n' % (prodId, product))
inp.close()
out.close()
If the product text is more complex then you might want to use the csv
module to help read and write the file.
BTW in Python 3 you can write
prodId, *products = fields.split()
http://www.python.org/dev/peps/pep-3132/
Kent
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor