こんにちは。
おぎーです。
この記事では、ファイルの書き出しについて初心者目線で優しく解説しています。
それでは早速学習を進めていきましょう。
Google Colaboratoryを開いてください。
インストールしていない方はこちらの記事を参考にインストールしましょう。
ファイル
Pythonでは、ファイルの書き出しや、ファイルにからのデータを読み込みなど、
ファイル関連の操作ができます。
ファイルの書き出しとは、
ファイルの内容を編集する、
という意味になります。
一方で、ファイルの読み込みとは、
ファイルの内容を取り出す、
という意味です。
今回は用語の説明が多めです。
ファイルの扱い方の基礎を学んでいきましょう。
ファイルの書き出し
まずは、ファイルの書き出しから説明していきます。
ファイルを書き出す、または読み込むためには、open関数が必要です。
open関数は組み込み関数で、2つの引数を受け取ります。
2つの引数とは、
・開きたいファイルのパスを表す文字列
・ファイルを開くモードを表す文字列
です。
ファイルパス
ファイルの「パス」とは、
コンピュータ上にファイルがどこに存在するか、
すなわち「住所」と捉えてもらえばわかりやすいかと思います。
例えば、
「hello.txt」といったファイルのパスは、
「/Uses/greeting/hello.txt」というように表されます。
こちらのパスを見てもらえれば分かりますが、
st.txtの左側の単語はスラッシュで区切られており、
それぞれの単語がファイルの名前を表しています。
この単語とスラッシュで構成された文字列がファイルパスと呼ばれ、
フォルダがコンピュータ上のどこにあるかを示しています。
ファイルパスの区切り方によって、コンピュータが正しく動作するかしないかに影響されます。
WindowsやmacOSのどちらにおいても、プログラムを正しく動作させたいのであれば、
ファイルパスを組み立てるときはPythonのosモジュールを使用すると良いです。
次のようなコードとなります。
import os
os.path.join("Users", "greeting", "hello.txt")
Users, greeting, hello.txtは例を示すために適当に作ったファイル名で実在。しません。
このコードで出力されるのはファイルパスで、
どのOSでも問題なく作動できると言われています。
Uses、greeting、hello.txtは3つともファイルの名前で、左から右へ行くにつれて小さいファイルとなっていきます。
このコードを出力すると、
'Uses/greeting/hello.txt'
と出てくると思います。
ファイルの名前の単語がスラッシュで区切られましたね。
os.path.joinという関数は、複数のフォルダ名を引数として受け取り、
それらのフォルダ名からファイルパスを組み立てます。
モード
モードは、open関数でどのような動作でファイルを開くのかを決めるための引数です。
モードにはいくつかの種類がありますが、代表的なものを紹介します。
r
まずは、rについてご紹介します。
rを使用すると、ファイルの読み込みだけできるようにファイルが開かれます。
read(読む)だから、rを使うんだと覚えましょう。
w
次に、wについてです。
wを使用すると、ファイルの書き出しのみできるようにファイルが開かれます。
write(書く)だから、wを使うんだと覚えましょう。
wを使用するときに、すでに存在するファイルパスを指定したら、
そのファイルは上書きされます。
一方で、ファイルがまだ存在していない場合は、
新しいファイルが作られます。
w+
最後にw+についてです。
w+を使用すると、ファイルの読み込みも書き出しもできるようにファイルが開かれます。
ハイブリットですね。
こちらを使用するときも、すでにファイルが存在していれば上書きされ、
存在していなければ、新しいファイルが作られます。
ファイルオブジェクト
ファイルオブジェクトは、ファイルを読み書きするために必要なオブジェクトです。
モードがwであるときは、プログラムを実行したディレクトリに、
open関数によって新しいファイルが作成されます。
それでは、ファイルに書き込みを行ってファイルを閉じるまでの操作を行ったコードの例を見てみましょう。
x = open("x.txt, "w")
x.write("hello, world")
x.close()
こちらのコードを出力すると、
Google Colaboratory内でx.txtというファイルが作成されており、
そのファイルを開くとhello, worldと文字列が書き出されています。
コードの内容を説明します。
1行目では、open関数を使用して、ファイル名・モードを指定してファイルを開いています。
今回は、x.txtというファイルをw(書き出しのみ可)で開きました。
2行目では、writeメソッドを使用して、開いたファイルにデータを書き込んでいます。
ここでは、hello, worldという文字列がファイルに書き出されました。
最後の3行目では、closeメソッドを使用してファイルを閉じました。
closeメソッドを使用してファイルを閉じないと、様々なファイルが開いたままで新たにプログラムを作動させるときに問題が生じるかもしれません。
そのため、closeメソッドを使用してファイルを閉じるようにします。
まとめ
今回は用語の説明が多かったですね。
次の記事でもファイルについて解説していきますのでぜひ一緒に学習しましょう。
最後に確認事項をチェックしてください。
・ファイルパスって何?
・ファイルパスを組み立てるためのコードは?
・モードって何?3つ挙げて説明
・ファイルに文字列を書き出す方法は?
今回のコードはGitHubの方に載せておきますので、
ぜひ活用してください。
GitHubでの閲覧方法は次の記事を参考にしてください。
それではまた次回お会いしましょう。
おぎー
“【Python初心者】ファイル①(書き出し)” への1件の返信