自分のブログ名

物理の空き地 by M.E_K

日々の学び、感じたことを書いております。ブログ移行中->https://physics-mek.com

移転しました。

リダイレクトします。

.txt(テキストファイル)からデータを読み取る

移転しました。

リダイレクトします。

FILENAME = "sample.txt" 
fin = open(FILENAME,"r") 
TIME = []
POSITION = []
for line in fin:
    if line[0] == "#":
        continue
    if len(line) < 1:
        continue
    item_list = line.split()
    TIME.append(int(item_list[0]))
    POSITION.append(int(item_list[1]))
print(TIME)
print(POSITION)


python初心者に向けて解説を記しておく。

FILENAME = "sample.txt"  #ファイルの名前
fin = open(FILENAME,"r")  #code上でファイルを展開
TIME = [] #空のリストを定義する
POSITION = []


注意
読ませたいファイルを.pyがある空間においておく必要がある。(別の空間においていても読む方法があるが、はじめたてなら必要ない。)f:id:Monster_K:20201001201344j:plain

空のリストについて説明する。これはリストを宣言しているだけである。これは例えによって理解がしやすいだろう。もしあなたが水を飲もうとする時、まず水を受けるコップを用意するだろう。pythonでは、そのコップに名前を付け、あとで使いまわすことが出来るようにしている。

for line in fin:  
    #例外処理
    if line[0] == "#": 
        continue
    if len(line) < 1:
        continue

    item_list = line.split() #空白で文字列を分ける

txtファイルを読みたいときはこれをコピペをして使うのがいいだろう。for文とif文を使い、txtファイルを一行一行読んでいる。finはopen関数を使って、読みたいtxtファイルを定義していた。for文を使ってそれを一行一行読み進めている。その時の一行をfor文の中で、lineと名付けて使っている。つまり、lineはtxtファイルの一行のデータを持っている。またこの時、lineはstring型(文字列)である。

TIME.append(int(item_list[0]))

これはappend関数を使っている。TIMEというコップにitem_listの0番目をint(整数)として加えることをしている。これによって、TIMEというコップに水をためるがのごとく、データを詰めていくことが出来るのだ。詰め終えたら、あとはそれをprint関数で表示させてやればいいというだけの話だ。


基礎知識
プログラミングにおいて、基本数字は0から始まる。リストの中身を数えるときは、0番目、1番目、2番目、、、となっている。そのため、視覚的に3番目でも次の数字を指名しなければいけないので注意が必要だ。