質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

textfileを行毎に読み出しが出来ない

shiraishi_kiich
shiraishi_kiich

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

4回答

0評価

0クリップ

167閲覧

投稿2022/01/05 00:24

前提・実現したいこと

WEBサイトからダウンロードしたTextfileを一行毎に読み出したいと思いました。実行結果は一文字毎に読み出していいました。
コード中最終的には「f」に代入したつもりです。これをprint(f)でターミナルに出力すると下のように正常に見えます。
N-S E-W Contract N-S E-W MP
B04 B30 5C N 5 400 27
B31 B05 2NT S 5 210 26
B18 B13 4C N 5 150 24.5
A09 A20 3C N 5 150 24.5
B24 B12 4C N 4 130 22
A02 A22 4C N 4 130 22
A07 A15 4C N 4 130 22
A03 A23 3C N 3 110 20
A19 A11 4S E-2 100 19
B07 B32 3S E-1 50 13
A17 A12 3S E-1 50 13
A21 A04 3S E-1 50 13
A24 A01 3S E-1 50 13
B03 B20 3S E-1 50 13
A05 A16 3S E-1 50 13
B23 B06 3S E-1 50 13
B25 B16 3S E-1 50 13
B26 B01 3S E-1 50 13
B09 B22 3S E-1 50 13
A10 A18 3S E-1 50 13
B28 B10 5C N-1 50 7
B19 B15 6C N-2 100 5.5
B17 B11 5Cx N-1 100 5.5
A14 A06 3S E 3 140 2.5
B14 B27 3S E 3 140 2.5
B02 B29 3S E 3 140 2.5
B21 B08 3S E 3 140 2.5
A13 A08 4S E 4 420 0
しかし
for line in f:
print(line)
で行毎に取り出そうとして printした内容は以下、上の行単位出力の最後の行が文字単位で出力されて見える。(され以前は表示範囲を超えているようで見えない。
0
8

4
S

E

4

4
2
0

0

print(type(f)) は <class 'str'> ですが print(hasattr(f, "line")) を見ると False になっています。
私にはどこで間違っているのか全く解りません。terxt文書のtyoeはstr と思っていましたが間違いなのでしょうか。
■■動作確認時に以下の期待しない動作がありました。

for line in f:で取り込んだ内容が行単位でなく、文字単位で取り込まれている。

該当のソースコード

python3.9

from typing import Text import requests from bs4 import BeautifulSoup as bs4 import dataclasses with open('tyest.txt', 'w') as f: load_url = "https://sendaibc.sakura.ne.jp/traveling/trv_2017aob_1.txt" html = requests.get(load_url) soup = bs4(html.content,"html.parser") print(f) print(type(f)) f = soup.text print(type(f)) print(f) #これはTextfileとしてターミナルに正常に出力される for line in f: #行単位でなく、文字単位にターミナルに表示される print(line) print(type(f)) print(hasattr(f, "line"))

試したこと

他の行単位出力tン位ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

TakaiY
TakaiY

2022/01/05 01:18

回答への質問に、 追加)netをみると for line in f: print\(line\) でtext文書壱行毎に読み出す書式として記載されています。 とありますが、出展を教えていただけますか、 何を根拠にどのような結果を期待しているのかがわかれば的確な説明ができると思いますので。
shiraishi_kiich
shiraishi_kiich

2022/01/05 01:25

https://www\.ipentec\.com/document/python-read-textfile-line-by-line より読みました。感違いがあったのでしょうか。」

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。