• ベストアンサー

エラーの原因が分からず困ってます。

下記の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)

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8473/18137)
回答No.3

原因は TypeError: expected string or bytes-like object の通りであってlines_stripが期待されている型になっていないのです。 例えば,途中に lines_strip = "".join(lines_strip) を入れてください。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>一応、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)
回答No.1

re.findall()の第2引数は文字列かバイト列が要求されていますが、lines_stripの値はそれらに該当していますか。 (第1引数のkeywordの値がエラーの原因という可能性もありますが質問に書かれている内容からは判断できないので保留しています)

the-man
質問者

補足

早速のご回答ありがとうございます。 こんなに早く来ると思ってませんでした。。 一応、re.findall()の第2引数は、["","Ab","Bc","Cd","De","Ef","Fg","Gh","Hi","Ij","Jk"]といった形式にしています。 またkeywordは、""内に該当する文字を入力しています。

関連するQ&A

専門家に質問してみよう