Python: CSV write by column rather than row

后端 未结 7 986
春和景丽
春和景丽 2020-12-01 03:46

I have a python script that generates a bunch of data in a while loop. I need to write this data to a CSV file, so it writes by column rather than row.

For example in

7条回答
  •  北荒
    北荒 (楼主)
    2020-12-01 04:10

    Updating lines in place in a file is not supported on most file system (a line in a file is just some data that ends with newline, the next line start just after that).

    As I see it you have two options:

    1. Have your data generating loops be generators, this way they won't consume a lot of memory - you'll get data for each row "just in time"
    2. Use a database (sqlite?) and update the rows there. When you're done - export to CSV

    Small example for the first method:

    from itertools import islice, izip, count
    print list(islice(izip(count(1), count(2), count(3)), 10))
    

    This will print

    [(1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9), (8, 9, 10), (9, 10, 11), (10, 11, 12)]
    

    even though count generate an infinite sequence of numbers

提交回复
热议问题