- ベストアンサー
エラーの原因が分からず困ってます。
下記のmatchのところで、エラー(TypeError: expected string or bytes-like object)が出て原因が分からず困ってます。 'ファイルをオープン' with open(target_file) as f: lines = f.readlines() '改行を削除' lines_strip = [line.strip() for line in lines] print(lines_strip) keyword = input() match = re.findall(keyword,lines_strip)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
原因は TypeError: expected string or bytes-like object の通りであってlines_stripが期待されている型になっていないのです。 例えば,途中に lines_strip = "".join(lines_strip) を入れてください。
その他の回答 (2)
- wormhole
- ベストアンサー率28% (1626/5665)
>一応、re.findall()の第2引数は、["","Ab","Bc","Cd","De","Ef","Fg","Gh","Hi","Ij","Jk"]といった形式にしています。 その型は文字列(str)やバイト列(bytes)ですか。 (文字列やバイト列か、というのは適当に書いているわけではなく、質問に書かれている"TypeError: expected string or bytes-like object”から読み取っているだけです) >こんなに早く来ると思ってませんでした。。 たまたまです。
- wormhole
- ベストアンサー率28% (1626/5665)
re.findall()の第2引数は文字列かバイト列が要求されていますが、lines_stripの値はそれらに該当していますか。 (第1引数のkeywordの値がエラーの原因という可能性もありますが質問に書かれている内容からは判断できないので保留しています)
補足
早速のご回答ありがとうございます。 こんなに早く来ると思ってませんでした。。 一応、re.findall()の第2引数は、["","Ab","Bc","Cd","De","Ef","Fg","Gh","Hi","Ij","Jk"]といった形式にしています。 またkeywordは、""内に該当する文字を入力しています。