繁体   English   中英

python中的预期字符串或缓冲区

[英]expected string or buffer in python

我有这个:

fin = open(blah)
fin_lower= fin.readlines()
lines = [fin_lower.lower() for line in fin]
lines = line.split()

它给:

TypeError: expected string or buffer

readlines是不对的?

readlines返回一个包含所有数据行的列表,看起来你有一个bug,你可能想要这样做:

lines = [line.lower() for line in fin_lower]

你的代码也在混合变量,通过它,你想要完成什么? 你似乎把linelines混合在一起。

re.sub需要一个字符串作为第三个参数,你给它lines是列表。 此外,在使用readlines消耗掉所有行之后,你正在迭代fin 你似乎想要这样做:

with open(blah) as fin:
    lines = [line.lower().replace(',', '').split() for line in fin]

另请注意,您无需re进行文字替换。

我同意巴特克的观点

我能够完成这件事。

import os
import signal
import time
import sys
import re
import string

fin = open('blah','r')
fin_lower= fin.readlines()

lines=""

for line in fin_lower:
lines += line.lower()


line = re.sub(';',' ',lines)
lines = line.split()
print lines

文件的初始内容等等

VISHAL; KHIALANI; NONOE; CANGETITDONE;

最终产出

['vishal','khialani','nonoe','cangetitdone']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM