如何在python中读取TSV文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (270)

我有大量的TSV文件,我想读取他们并将最后的颜色写入其他文件。

这是我的代码:

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])

大多数是正确的, 但问题在于,有些线路是互相干扰的。 即行变量越来越少,所以最终不仅将最后一个coloum写入文件,而且下一行的所有coloums也是如此。 它在几行后停止 - 无法说明原因。

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

提问于
用户回答回答于

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

试着添加newline=''在你的open()调用(也许还可以添加quotechar='"'reader(),但这可能是默认的)。

扫码关注云+社区

领取腾讯云代金券