LoginSignup
3
1

More than 3 years have passed since last update.

Pythonによる.txtファイルの読み込み

Last updated at Posted at 2020-06-16

paizaラーニングの環境でPythonの基礎をひと通り勉強した後にAtomに移行したら標準入力ができないことに困惑してしまい、どうしたら外部からのデータを読み込めるか調べた時のまとめです。
初心者の自分用にまとめたものなので間違いなどあったら教えてくださると幸いです。

以下のサイトを参考にさせていただきました。
note.nkmk.me
- Pythonでカレントディレクトリを取得、変更(移動)
- Pythonでファイルの読み込み、書き込み(作成・追記)
crukky
- atom・pythonで競技プログラミングのテスト環境構築

カレントディレクトリを取得してパスをつなげる

pass.py
import os
path = os.getcwd()
print(path)

os.getcwd()は現在Pythonが実行されているカレントディレクトリの絶対パスを文字列として返す。

.txt形式のファイルを読み込む

os.getcwd()で取得したパスのつながったフォルダ内に.txtファイルを移動させておかないとファイルをうまく読み込めずにエラーが出てしまう。

ファイル全体を文字列として読み込む(read)

read.py
path = "ファイル名.txt"

with open(path) as f:
    s = f.read()
    print(s)

["文字列"] という形で出力される。

ファイル全体を行ごとにリストとして読み込む(readlines)

read2.py
path = "ファイル名.txt"

with open(path) as f:
    l_strip1 = [s.strip() for s in f.readlines()]
    print(l_strip1)

["1行目", "2行目", "3行目", "4行目", ・・・] という形で出力される。
paizaのスキルチェックにあるように " "(スペース) で区切られた文字列をさらにリストとして分割して全体を2次元リストとして読み込みたいときは split(" ") を追加して

read3.py
path = "ファイル名.txt"

with open(path) as f:
    l_strip2 = [s.strip().split(" ") for s in f.readlines()]
    print(l_strip2)

とすればよい。
[["1-1", "1-2", "1-3"], ["2-1", "2-2", "2-3"], ・・・] という形で出力される。

Atom上のTerminalで.py形式のファイルを呼び出す

Atomの「ファイル>設定>インストール」から「platformio-ide-terminal」というパッケージをインストールする。
そうすると、画面左下に小さな"+"マークが現れるのでここをクリックするとAtom上でTerminalを呼び出せる。
Terminalの「PS C:\ Users \ (ユーザ名) \ (カレントディレクトリ名)>」の右に「python (ファイル名).py」と記述してEnterを押すとTerminal上で.pyファイルが呼び出される。

以上です。

3
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1