我不确定这里的问题是什么。我有一个我要过滤的csv文件。我想删除以'@'开头的所有行以及第三列是字符串'chrM'的所有行。我基本上设置我的代码就像这里的答案:
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行,in outSamCont.write(ProcessLine从(线)) AttributeError:'_csv.writer'对象没有属性'write'
我做错了什么
答案 0 :(得分:4)
您可能正在寻找.writerow()
。
我也遇到了这个问题,因为我关注的文档使用了.write()
,但csv.writer
个对象使用了.writerow()
。
答案 1 :(得分: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
,因此出现错误消息。有关csv.writer
个对象的详细信息,请参阅the documentation,并选择合适的方法。