python - 类型错误 : expected a character buffer object

标签 python csv error-handling

我有以下代码:

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/

相关文章:

python - 在django模型中插入CSV数据,空值

c++ - 在类的最大实例化上引发错误

error-handling - 改进 ANTLR DSL 解析错误消息

python - Django 搜索 : Setting Haystack_Default_Operator = 'OR' has no effect

Python-Flask-Redis-ResponseError : unknown command 'SETEX'

python - 读取 csv 文件,包括列名作为值

javascript - 语言推荐 : Easiest approach for displaying csv data in a graph on the intranet (not internet)

c# - C#错误: not all code paths return a value. Casting a string to a float

python - ExtraTreesClassifier 的特征重要性返回全零

python - 如何将特殊字符 ("\n","\b",...) 写入 Python 文件?