加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python csv字段中的新行字符

发布时间:2020-12-20 13:06:22 所属栏目:Python 来源:网络整理
导读:我有一个问题,读取一个刺分隔的csv文件,我认为在其中一个字段中有一个新的行字符.它强制行超过两行,所以我无法读取行的最后一个字段中的值.我尝试在新线模式下打开,但不确定最好的解决方法是什么. 这是我试图在python中读取文件的方式: csv.register_dialec
我有一个问题,读取一个刺分隔的csv文件,我认为在其中一个字段中有一个新的行字符.它强制行超过两行,所以我无法读取行的最后一个字段中的值.我尝试在新线模式下打开,但不确定最好的解决方法是什么.

这是我试图在python中读取文件的方式:

csv.register_dialect('BB',delimiter='xfe')
with open(file,'rU') as file_in: 
    log=csv.reader(file_in,dialect='BB')
    for row in log:
        print row

这适用于大多数文件,但有一行我假设在其中一个字段中有一个新的行字符 – 我不确定如何诊断它.这是该行在记事本中的显示方式的屏幕截图,因为您可以看到它在两行上强制显示该行应该看起来像下面的两行.

enter image description here

使用csv.reader读取此行时,行如下所示:

[’06 -13-2015-10:13:41′,’0′,”,’ 142′,’5′,’7.0′,’2′,’cmhkl966′,’amex_674′,’1′,’0.00′,”’]

即在第一个撇号时被截断.

解决方法

我稍微解决了你的问题(希望我抓住了问题的原因):

import io
import csv

file_in = io.StringIO('''
atbt'hello
world'
''')

log=csv.reader(file_in,delimiter='xfe',quotechar="'")
for row in log:
    print(row)

输出:

['a','b','hellonworld']

更新:

按照评论中的要求:这里是从文件中读取.csv的版本. test.csv的内容是:

atbt'hello
world'tc
dtet'hello
other
things'tf
gthtitj

和python代码:

import csv
from pathlib import Path

HERE = Path(__file__).parent
DATA_PATH = HERE / '../data/test.csv'

with DATA_PATH.open('rU') as file_in:
    log=csv.reader(file_in,quotechar="'")
    for row in log:
        print(row)

哪个输出:

['a','hellonworld','c']
['d','e','hellonothernthings','f']
['g','h','i','j']

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读