1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Python超入門その7〜ファイル操作の基本を覚えよう〜

Pocket

はじめに

基本的なデータ型はうまく扱えるようになりましたか?

これまではprint関数を使ってコンソールに出力してきましたが、そろそろ別の場所にも出力してみたいですよね。

もう少し進んだ出力方法としては、ファイルへの入出力があります。

Pythonでも他の言語と同様に、ファイルへの入出力を行う関数が標準で組み込まれています。

この記事では、Python初心者の方向けに、Pythonでのファイルへの入出力について説明していきます。

ファイルを扱えるようになると一気にプログラミングらしくなるので、ぜひ自分でやってみましょう。

そもそもファイルってなんだ?

ファイルは、OSが管理するファイルシステム上に存在しています。

具体的には、HDDやSSDなどのストレージ内に保存されているビット(0と1)の集まりです。

ファイルには大きく分けて、テキストファイルとバイナリファイルがあります。

バイナリファイルはバイト列が書き込まれているファイルで、テキストファイルはその名の通りテキスト(文字列)が書き込まれているファイルです。

結局のところ、どちらのファイルも0と1の羅列が書き込まれていることに違いはありませんが、テキストファイルのデータは文字列として解釈して読むことができます。

一方、バイナリファイルは、人間が直接読むものではなく、コンピューターが解釈して利用するものなので、仮に文字列にしたとしてもほとんど意味不明です。

ここでは、よく扱われるテキストファイルの入出力について説明していきます。

ファイルへの書き込み方法

Pythonには、組み込みのファイル入出力関数があるので、簡単にテキストファイルを作成して書き込めます。ファイルにテキストを書き込むには、次のようにします。

ここでの”f”は、ファイルオブジェクトが割り当てられた変数です。

open関数の第一引数にファイル名、第二引数にモード(wは書き込みを表す)を指定することで、書込み可能なファイルオブジェクトを得られます。

後はファイルオブジェクトに対して、writeメソッドを呼び出して文字列を書き込み、最後にcloseメソッドでファイルを閉じます。

最後にファイルを閉じるのを忘れないようにしましょう。変数やオブジェクトについては次回以降の記事で詳しく説明します。

うまくテキストファイルが作成されましたか?次は、書き込んだテキストをプログラムから読み取ってみましょう。

ファイルからの読み込み方法

ファイルからテキストを読み取る場合も流れはほとんど同じです。

先程のファイルからテキストを読み取って表示するには、次のようにします。

先ほどと違うのは、open関数でモード指定が不要(デフォルトで読み込みモードになるため)なことと、readメソッドでファイルの内容を読み取って変数に割り当てていることです。

後は、単純に変数の内容をprint関数でコンソールに表示しています。

うまくいっていれば、先ほど書き込んだ内容がコンソールに表示されます。

さて、ここまでうまくできたら、最後にテキストファイルを扱う際の注意点についてお伝えしておきます。

文字コードに注意しよう

先程お伝えした通り、テキストファイルは単なる0と1の羅列に過ぎません。

これを文字列として解釈できるのは、「文字コード(テキストエンコード)」のお陰です。

文字コードは暗号解読表のようなもので、0と1で表現された数値を特定の文字に割り当てます。

先程の例ではテキストエンコーディングを指定しませんでしたので、プラットフォーム固有の既定値が使用されます。

もし、書き込み時と読み取り時の文字コードが違っていた場合には、エラーになることがあります。

たとえば、次のようなコードはエラーになります。

これは作為的な例ですが、別のプログラムで作成されたテキストファイルを読み込む際には、文字コードを確かめてencoding引数に適切な文字コードを指定する必要があります。

まとめ

ファイルの読み書きはうまくできましたか?

無味乾燥なコンソールではなく、実際のファイルに読み書きできると楽しくなってきますよね。

テキストファイルは簡単に読み書きできるので、いろいろ遊んでみましょう。

ただし、くれぐれもテキストエンコーディングには注意してくださいね。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る