【问题标题】:Importing csv lines in python在python中导入csv行
【发布时间】:2016-10-09 12:25:31
【问题描述】:

我有一个这种形式的 csv (test.csv) 文件:

> name age gender grade
  A    1   M      85 
  B    2   F      95 
  C    3   M      95

并有以下代码:

myfile = open(testcsvfilepath) 
    columnheader= myfile.readline()
    rowentries= myfile.readlines()
    myfile.close()
    for rowentry in rowentries:
        print rowentry 

打印的行总是以 '' 开头,我不知道为什么。我错过了什么还是我能做些什么来删除它? 结果如下:

['"']
['A','1','M','85']
['B','2','F','95']
['C','3','M','95']

【问题讨论】:

    标签: python-2.7 csv


    【解决方案1】:

    每当您在 python 中读取文件时,它都会出现在您的程序中的引号之间,因为它代表string

    你可能想检查一下:

    5.6。序列类型——str、unicode、list、tuple、bytearray、buffer、xrange

    字符串字面量写在单引号或双引号中:'xyzzy', “弗罗布兹”。有关字符串文字的更多信息,请参阅字符串文字。统一码 字符串很像字符串,但在语法中使用 a 前面的 'u' 字符:u'abc', u"def"。

    考虑使用CSV library

    如果您担心 csv 处理报价,现有帖子here

    但是documentation states

    Dialect.skipinialspace 为 True 时,紧跟其后的空格 分隔符被忽略。默认为 False。

    例如:

    import csv
    
    with open(name, 'rb') as f:
         for row in csv.reader(f, delimiter=' ', skipinitialspace=True):
                 print row
    

    【讨论】:

    • 是的,同意这一点,但是,这里的问题是它有一个额外的空行,只是引号
    • 请在您的帖子中发布结果
    • 查看修改后的答案 =)
    • 试过上面的修改,有'_csv.Error: newline inside string'
    • 尝试: line = open("myfile.csv", "r").read().replace('\r\n','\n') 删除细微差别,然后继续打开和阅读
    猜你喜欢
    • 2014-04-10
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    相关资源
    最近更新 更多