How to read a csv file with python

前端 未结 3 1202
北荒
北荒 2020-12-16 07:18

I\'m trying to read a csv file but it doesn\'t work. I can read my csv file but when I see what I read, there where white space between values.

Here is my code

相关标签:
3条回答
  • 2020-12-16 07:33

    I prefer to use numpy's genfromtxt rather than the standard csv library, because it generates numpy's recarray, which are clean data structures to store data in a table-like object.

    >>> from numpy import genfromtxt
    >>> data = genfromtxt(csvfile, delimiter=',', dtype=None)
    # data is a table-like structure (a numpy recarray) in which you can access columns and rows easily
    >>> data['firstcolumn']
    <content of the first column>
    

    EDIT: This answer is quite old. While numpy.genfromtxt, nowadays most people would use pandas:

    >>> import pandas as pd
    >>> pd.read_csv(csvfile)
    

    This has the advantage of creating pandas.DataFrame, which is a better structure for data analysis.

    0 讨论(0)
  • 2020-12-16 07:47

    If you have control over the data, use tab-delimited instead::

    import csv
    import string
    
    writer = open('junk.txt', 'wb')
    for x in range(10):
        writer.write('\t'.join(string.letters[:5]))
        writer.write('\r\n')
    writer.close()
    reader = csv.reader(open('junk.txt', 'r'), dialect='excel-tab')
    for line in reader:
        print line
    

    This produces expected results.

    A tip for getting more useful feedback: Demonstrate your problem through self-contained and complete example code that doesn't contain extraneous and unimportant artifacts.

    0 讨论(0)
  • 2020-12-16 07:47

    You don't do anything with the dialect you've defined. Did you mean to do this:

    csv.register_dialect('windows_dialect', windows_dialect)
    p = csv.reader(contenu, dialect='windows_dialect')
    

    Also not sure what the reco function is for.

    0 讨论(0)
提交回复
热议问题