首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中读取tsv文件

在python中读取tsv文件
EN

Stack Overflow用户
提问于 2018-06-16 23:32:53
回答 1查看 922关注 0票数 -1

我有很多的tsv文件,我想把它们一个一个地读出来,并把最后一列写到其他文件中。

以下是我的代码:

代码语言:javascript
复制
for filename in os.listdir(path):
    with open(path+'/'+filename,'r',encoding="utf8") as tsvin, open('temptweets.csv','a',encoding='utf-8') as csvout:
        tsvin = csv.reader(tsvin, delimiter='\t')
        csvout = csv.writer(csvout)
        count = 0
        for row in tsvin:
            try:
                count = str(row[-1])
            except ValueError:
                pass  # w.e.
            if len(count) >= 0:
               csvout.writerow([count])

大多数情况下,它工作得很完美。但问题是,一些线路交错在一起。例如,行变量获得更多的几行连接在一起,所以它最终不仅最后一列被写入到文件中,而且下一行的列。它在几行之后就停止了--也不知道为什么。

我尝试过用其他几种方法(如pandas)读取这些文件,但得到了相同的结果。我还尝试打开输入文件并查看所有字符(notepad++),但所有行(包括有问题的行)都有 CR:LF。I知道输入文件有问题(输入文件已给出),但我想知道是否有任何方法可以解决它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-17 04:45:41

看起来您的文件可能在双引号中嵌入了多行字段(但如果不查看数据就很难判断)。

尝试在open()调用中添加newline='' (也可以将quotechar='"'添加到reader(),但这可能是默认设置)。

doc

如果未指定newline='',则将无法正确解释嵌入在带引号的字段中的换行符

或者情况正好相反,也许您需要关闭引号才能正确解析这些文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50889248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档