2013-12-17 17 views
4

我不确定这里出现了什么问题。我有一个我想过滤的csv文件。我想删除以'@'开头的所有行,以及第三列为字符串'chrM'的所有行。进出口基本设置我的代码最多是喜欢这里的答案:'_csv.writer'对象没有属性'写'

TypeError: expected a character buffer object

但是我得到一个错误。

import re 
import csv 

inputSamFile = 'excerpt' 
outSamFile = 'filternoM' 

with open(inputSamFile) as inputSam, open(outSamFile, 'wt') as outSam: 
    inputSamCont = csv.reader(inputSam, delimiter = '\t') 
    outSamCont = csv.writer(outSam, delimiter = '\t') 
    for line in inputSamCont: 
     if line[0].startswith('@'): 
      continue 
     elif line[2] == 'chrM': 
      continue 
     else: 
      outSamCont.write(line) 

回溯(最近通话最后一个): 文件 “filterMito.py” 19行,在 outSamCont.write(ProcessLine从(线)) AttributeError的: '_csv.writer' 对象有没有属性'写'

我在做什么错了

+0

这是''作家'不''写'... –

+0

@Jon Clements谢谢 –

+0

我有同样的问题,但'writeheader'我从文档复制名称,它是如何不存在? –

回答

3

您可能正在寻找.writerow()

我也遇到了这个问题,因为我的文档尾随使用.write(),但csv.writer对象使用.writerow()

+0

我有同样的问题,但与'writeheader'我从文档复制名称,它是如何不存在? –

2

该错误告诉你你需要知道的一切。

AttributeError: '_csv.writer' object has no attribute 'write' 

在你的代码,创建对象:

outSamCont = csv.writer(outSam, delimiter = '\t') 

然后尝试调用.write()方法:

outSamCont.write(line) 

(或者,因为它是在回溯

outSamCont.write(ProcessLine(line)) 

我不知道为什么哟你已经发布了不同的代码给你正在运行)。

但是,该对象csv.writer没有方法write,因此是错误消息。请参阅the documentation获取csv.writer对象的方法列表,并选择适当的对象。