前提・実現したいこと
pythonにて東京23区の区名と駅名を入力すると、入力した区名が含まれるtxtファイルを検索し、当該のtxtファイルを読み込んで、入力した駅名が記載されている行数を返す関数を作成したいと考えております。
エラーは出力されずに終了するプログラムを作成できたのですが、駅名を変えても入力した区名が含まれるtxtファイルの行数+1を返すプログラムになっており、入力した駅名の検索が出来ていないことがわかりました。
(下記の例ですと、35行目までのtxtファイルを検索しきって、36行目を返してくる。)
print関数を用いて、途中のデータの状態を確認したところ、open関数でtxtファイルを読み込むところで、txtファイルの中身ではなく、「io.TextIOWrapper name=、、、」を読み込んでいることがわかりました。
open関数でtxtファイルを読み込むところで、txtファイルの中身ではなく、「io.TextIOWrapper name=」を読み込んでいる原因と解消方法についてご教示いただけると幸いです。
*open関数で読み込まれたファイルオブジェクト自体を文字列として読み込んでいるのかと思うのですが、何故そうなるのかと解消方法がわからず、ご教示いただけると幸いです。。。
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- 港区 六本木駅 ./input/港区の駅一覧.txt <_io.TextIOWrapper name='./input/\udce6\udcb8\udcaf\udce5\udc8c\udcba\udce3\udc81\udcae\udce9\udca7\udc85\udce4\udcb8\udc80\udce8\udca6\udca7\udcef\udcbc\udc88\udce8\udca6\udcb3\udce5\udc85\udc89\udcef\udcbc\udc89- \udce3\udc81\udc98\udce3\udc82\udc83\udce3\udc82\udc89\udce3\udc82\udc93net.txt' mode='r' encoding='utf-8'> serch 六本木駅 36 ---------------------------------------------------------------------------
該当のソースコード
python
1def getstationid(args1,args2): 2 for f in glob('./input/*.txt'): 3 if args1 in f: 4 file3 = str(f) 5 print(file3) 6 with open(file3, 'r', encoding='utf-8') as f1: 7 a = 1 8 x1 = 0 9 f2 = str(f1) 10 print(f2) 11 print("serch") 12 print(args2) 13 for src_data in f1: 14 if args2 in src_data: 15 break 16 else: 17 a = a +1 18 x1 = a 19 return x1
XXnettxt
1例)港区の駅一覧.txt 2青山一丁目駅 3赤坂駅 4赤坂見附駅 5赤羽橋駅 6麻布十番駅 7お台場海浜公園駅 8御成門駅 9表参道駅 10神谷町駅 11外苑前駅 12汐留駅 13品川駅 14芝浦ふ頭駅 15芝公園駅 16白金高輪駅 17白金台駅 18新橋駅 19泉岳寺駅 20高輪ゲートウェイ駅 21高輪台駅 22竹芝駅 23田町駅 24溜池山王駅 25台場駅 26大門駅 27虎ノ門駅 28虎ノ門ヒルズ駅 29乃木坂駅 30浜松町駅 31日の出駅 32広尾駅 33三田駅 34モノレール浜松町駅 35六本木駅 36六本木一丁目駅
回答1件
あなたの回答
tips
プレビュー