[Python]Pythonでファイルを保存する[初心者]

何にでも言えることですが、勉強し始めの頃は結局何を目的にしてるのかを見失いことが重要になります。

プログラミングで処理を出来た!

あれ、この処理の目的ってなんだったっけ。。。

まとめたデータを保存することだ!

ということで、Pythonでのデータ保存について見ていきましょう。(無理矢理of無理矢理)

目次
  1. データの保存は大切
  2. txtファイルに保存する
  3. ファイルの開き方を考える

データの保存は大切

欲しいデータが今だけ見れればいいのであれば、保存しても容量を食うだけなので無駄かもしれませんが、取得したデータは何度か見たり、違うデータと比較したりしますよね。

もう見ないし保存しなくていいやと判断したものの

前回見せてくれたデータをもっかい見せて

  オワタ

とならないためにも保存の方法について、見ておきましょう。

textファイルで保存する

一番基礎的な保存方法としてtextファイルがありますよね、皆さんもよく見られるファイル形式かと思います。

ファイル保存の手順は

  1. 保存したいファイルを開く(指定する)
  2. ファイルに書き込む
  3. ファイルを閉じる

といった手順になります。

なんで最後閉じなあかんのー

最後の閉じるは意外と重要で、閉じることを忘れていていざ他のソフトからファイルをいじろうとした時に変更が加えられないなど思わぬ状況に出くわすことになってしまいます。ですので、開いたら閉じるということを意識しましょう!

まずは参照するファイルを決めます。今回はテキストエディタで適当にabcde–と打って.txtファイルでデスクトップに”abcd.txt”として保存します。

↓中身はこんな感じ

f:id:Souman:20210321233748p:plain

それではターミナルもしくはコマンドプロンプトを開きましょう。

まずはpython3と入力してEnterでインタラクティブシェルを起動します。


python3


>>>

ここでファイルを開くために使いたいのが、open関数というものです。

下記にPython公式のopen関数に関するドキュメントのリンクを貼っているので、興味のある方は見てくだい、open関数以外にも色々と必要な情報が得られるので、迷った時に一度参照すると自分の力にもなりかなりお薦めです!

https://hatenablog-parts.com/embed?url=https%3A%2F%2Fdocs.python.org%2Fja%2F3%2Flibrary%2Ffunctions.html%3Fhighlight%3Dopen%23opendocs.python.org

open関数を使って先ほど作成したabcd.txtファイルを開きます。上記のリンク内にも説明がありますが、open関数はfileを開き、対応するファイルオブジェクトを返します。そして、その返されたファイルオブジェクトを何かしらの変数(ここではf)に入れます。


>>>f=open("abcd.txt","w")

でEnter


>>>

うまく表示されないよという方はabcd.txtを保存しているディレクトリ上にいない可能性がありますので、


>>>import os
>>>os.chdir("ファイルの保存アドレス")

を実行して見てください。”ファイルの保存アドレス”にはabcd.txtファイルを右クリックするとアドレスのコピーができる項目があるはずなので、それをコピーしてペーストしてください、Macの場合は右クリックを押したキーボードのoptionを押せばアドレスのコピーが出てくるはずです!


>>>f=open("abcd.txt","w")

について見てみましょう。

1つ目の引数に開きたいファイル名を入力

2つ目の引数にどの形式で開くのかを選択します。

形式というのは読み取り専用なのか、書き込みをするのかなどを決めるものになります。以下に詳細を載せてます。

f:id:Souman:20210321233927p:plain

今回は書き込みを行いたいので”w”を指定しました。

次にこの開いたabcd.txtファイルに情報を与えてみましょう。


>>>f.write("12345")

fは先ほど開いたabcd.txtファイルのことですね、それに書き加えるのでwriteで、合わせるとf.writeになります。そしてカッコ内に書き加えたい情報を入力します。ここでは12345としました。

そして肝心なのが最後の閉じる作業です。


>>>f.close()

でEnterを押してファイルが閉じたことになります。見た目では何も見えませんが。

では、これで先ほどの中身を確認してみましょう!

f:id:Souman:20210322003418p:plain

ん、、、あれ、、、さっきabcd—って書いてたよね。 消えてる〜〜〜〜

ってなことになります。これが大量の大事なデータだったとすると悲劇どころでは済みませんよね。

なぜ消えてしまったのかですが、このopen関数の書き込み”w”は上の表内に説明があるように、”書き込みように開きファイルを切り詰める”とありますね。つまり”w”で開くとファイルの先頭から書き込みを行ってしまうということになりそうです。じゃあどうすればよかったのか。

上の表を再度見てみると何やら”a”というのがありますね。

わからないときはとりあえずやってみるのが一番です。abcd.txtファイルの中身にはabcdefgとだけ記入&保存して,ファイルの開き方を”a”でやってみましょう!abcd

f:id:Souman:20210322200444p:plain

>>>f=open("abcd.txt", "a")
>>>f.write("12345")
>>>f.close()

これでabcd.txtファイルを実際に開いて中身を確認してみましょう

f:id:Souman:20210322200500p:plain




と元のファイルの内容(abcdefg)が残っていることと書き加えた(12345)が残っていることが確認できましたね。

ファイルの開き方を考える

今回紹介したopen関数を使用した方法の場合、ファイルの開き方がかなり重要であることがわかりました。ここから学べることは現在のファイルがどういう状態にあるのかをしっかりと判断する必要があるということです。

ファイルが開いているのか閉じているのか、開いているのであれば上書きされる状態なのか読み込み専用なのかなどファイルを扱っていく上では常に考えたいですね。これで重要なデータがなくなってしまっては元も子もないですもんね。

今回はopen関数でのファイルの扱い方についてみていきました。こうやって一つの関数をさっと観察して、何ができるのかを学ぶことを繰り返していけば、状況に応じた関数の使用ができるようになりますね。

open関数には他にもtell()やseek()など遊べるメソッドが色々存在しますので遊んでみてください。

ファイルの扱いにはopen関数以外にもありますので、また紹介していければと思います。最後まで読んでくださりありがとうございます。

コメント

タイトルとURLをコピーしました