paizaラーニングの環境でPythonの基礎をひと通り勉強した後にAtomに移行したら標準入力ができないことに困惑してしまい、どうしたら外部からのデータを読み込めるか調べた時のまとめです。
初心者の自分用にまとめたものなので間違いなどあったら教えてくださると幸いです。
以下のサイトを参考にさせていただきました。
note.nkmk.me様
- Pythonでカレントディレクトリを取得、変更(移動)
-
Pythonでファイルの読み込み、書き込み(作成・追記)
crukky様 -
atom・pythonで競技プログラミングのテスト環境構築
##カレントディレクトリを取得してパスをつなげる
import os
path = os.getcwd()
print(path)
**os.getcwd()**は現在Pythonが実行されているカレントディレクトリの絶対パスを文字列として返す。
##.txt形式のファイルを読み込む
os.getcwd()で取得したパスのつながったフォルダ内に.txtファイルを移動させておかないとファイルをうまく読み込めずにエラーが出てしまう。
###ファイル全体を文字列として読み込む(read)
path = "ファイル名.txt"
with open(path) as f:
s = f.read()
print(s)
["文字列"] という形で出力される。
###ファイル全体を行ごとにリストとして読み込む(readlines)
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(" ") を追加して
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ファイルが呼び出される。
以上です。