私はこれを持っています:
fin = open(blah)
fin_lower= fin.readlines()
lines = [fin_lower.lower() for line in fin]
lines = line.split()
それは与えます:
TypeError: expected string or buffer
ラインを読むのは間違っていますか?
私はこれを持っています:
fin = open(blah)
fin_lower= fin.readlines()
lines = [fin_lower.lower() for line in fin]
lines = line.split()
それは与えます:
TypeError: expected string or buffer
ラインを読むのは間違っていますか?
readlinesはすべての行のデータを含むリストを返します。これはバグがあるようで、おそらくこれを実行したいと思うでしょう:
lines = [line.lower() for line in fin_lower]
あなたのコードには変数も混在しています。それをうまく進めてください。何を達成しようとしていますか? あなたは混ざっline
ているようですlines
。
re.sub
は 3 番目の引数として文字列を期待しますが、lines
これはリストです。fin
また、ですべての行を消費した後、繰り返し処理していますreadlines
。あなたはやろうとしているようです:
with open(blah) as fin:
lines = [line.lower().replace(',', '').split() for line in fin]
re
また、リテラル置換を行う必要がないことにも注意してください。
Bartekに同意します
私はこれを成し遂げることができました。
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']