我有这个:
fin = open(blah)
fin_lower= fin.readlines()
lines = [fin_lower.lower() for line in fin]
lines = line.split()
它给:
TypeError: expected string or buffer
readlines 有错吗?
我有这个:
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返回一个包含所有数据行的列表,看起来你有一个错误,你可能想要这样做:
lines = [line.lower() for line in fin_lower]
您的代码也在混合变量,通过它迈出良好的一步,您要完成什么?你似乎混和line
一堆lines
。
re.sub
需要一个字符串作为第三个参数,你给它lines
的是一个列表。此外,您在fin
使用readlines
. 您似乎正在尝试这样做:
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
文件 blah 的初始内容
维沙尔;希亚拉尼;诺诺; 完成;
最终输出
['vishal', 'khialani', 'nonoe', 'cangetitdone']