我有以下代码:
import os
import csv
listing = os.listdir('/directory/my/files/are/in')
os.chdir('/directory/my/files/are/in')
for file in listing[1:]:
r = csv.reader(open(file, 'rU'))
for row in r:
stuff = [str.split('\t', 1) for row in r]
print stuff
返回TypeError:需要一个字符缓冲区对象
。我该如何解决?基本上我想打开目录中的所有(csv)文件,然后从每个单元格中删除某些垃圾(在/t之后并包括/t之后的所有内容。)
最佳答案
str.split('\t', 1)
相当于 '\t'.split(1)
,它尝试分割字符串 '\t'
为非字符串 1
,失败。并且并不完全清楚您期望这样做:您正在迭代 r
,然后在该循环的主体中您再次迭代 r
(在列表理解。)您是否打算做这样的事情?
for row in r:
stuff = [item.split('\t', 1) for item in row]
print stuff
(这仍然没有多大意义,但至少它做了一些事情。)
关于python - 类型错误 : expected a character buffer object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795422/