Pythonでのファイル操作方法を紹介します。この方法を使うとたくさんのファイルを一度に読み込んだり、書き込んだりすることが可能です。
このファイル操作を理解するためにはファイルパスやカレントディレクトリ、ルートディレクトリの知識がひつようになります。
今回は「ルートディレクトリ・カレントディレクトリ・ファイルパス」の説明をします。 もし、「ディレクトリ」という言葉が分からない場合は下の記事をご覧ください。 [sitecard subtitle=関連記事 url="https[…]
パソコンを使ったことがあるのなら一度は聞いたことがあるとは追うこれらの言葉「ファイル・フォルダ・ディレクトリ」の違いを説明していきたいと思います。 本棚に本がたくさん入っているようにフォルダ(ディレクトリ)の中にファイルが入っている[…]
1.ファイルパスを取得
➀絶対パスを取得
- ファイルパスとはコンピュータ上でファイルの場所を示す住所のこと
- Windwsなら画像のようにExplorerから確認できる
- 「パスのコピー」でクリップボードにコピーされる
- ファイルの絶対パスがコピーされる
画像の「スケジュールファイル」の場合、いかの絶対パスがクリップボードにコピーされます。
“C:\Users\Desktop\ブログ\スケジュール.xlsx”
この方法は直接パスを取得していますが、ほかにもosモジュールを使ってディレクトリを連結させる方法があります。
②osモジュールで連結する方法
- osモジュールをインポート
- os.path.join関数にディレクトリをカンマ区切りで渡す
- WindwsでもMacでも使えるパスにしてくれる
1 2 3 4 5 6 7 |
import os path = os.path.join('C:', 'Users', 'Desktop', 'ブログ', 'スケジュール.xlsx') print(path) #出力結果 C:Users\Desktop\ブログ\スケジュール.xlsx |
Windwsでは「¥」Macでは「\」というようにファイルパスの区切り文字が異なります。ですが、os.path.join関数を使うとどちらでも対応してくれるわけですね。
ここまでで取得したファイルパスをopen関数に渡すとファイルを開くことができます。
2.ファイルを開く
➀opne関数を使う
- open関数にファイルパスを渡す
- 絶対パスでも相対パスでも可能
1 2 3 |
path = r"C:\Users\queen\Desktop\ブログ\スケジュール.xlsx" file = open(path, "r") #➀② file.close() #➃ |
- path変数にファイルの絶対パスを代入(1行目)
- raw列になっている
- open関数にpathを渡す(2行目)
- 読み込みモードを指定(2行目)
- ファイルを閉じる(3行目)
Pythonで文字列を扱うときには細かいルールがたくさんあります。今回はraw列やエスケープ文字の解説をしていきますが、その前にそのルールを確認しておきましょう。 文字列のルール クォートで挟んで表す。シングルクォート(’)で[…]
ファイルを開くのと閉じるのは必ずセットで行いましょう。ファイルから値を読み込んだり書き込んだりする場合は2行目と3行目の間に処理を書き込みます。
②読み書きのモードを指定
- 「読み込み専用・書き込み専用・読み書き専用」がある
- 読み込み専用:r
- 書き込み専用:w(上書きされる)
- ファイルがなければ新規作成される
- 書き込み専用:a(追加される)
- バイナリーモード:b(読み書き両方)
1 2 3 4 5 6 7 8 9 |
path = r"C:\Users\queen\Desktop\ブログ\スケジュール.xlsx" file = open(path, "r") #読み込み専用 file.close() file = open(path, "w") #書き込み専用(上書き) file.close() file = open(path, "a") #書き込み専用(追加) file.close() |
➂文字エンコードの指定
日本語などの「非アスキー文字」を含むファイルを読み書きする場合は文字エンコードを指定する必要があります。
opne関数に「encoding=”utf-8″」というキーワード引数を渡します。
1 2 3 |
path = r"C:\Users\queen\Desktop\ブログ\スケジュール.xlsx" file = open(path, "r", encoding="utf-8") file.close() |
その他にも「Shift-jis」などの文字エンコードがあります。
➃ファイルを閉じる
open関数でファイルを開いたらcloseで閉じます。そうしないとエラーの原因になります。
1 2 3 |
path = r"C:\Users\queen\Desktop\ブログ\スケジュール.xlsx" file = open(path, "r") file.close() |
ファイルのクローズまで一括で行う
最後にファイルを閉じるところまでを一括で行うには「with」を使います。
1 2 3 4 |
path = r"C:\Users\queen\Desktop\ブログ\スケジュール.xlsx" with open(path, "r", encoding='utf-8') as f: #処理を記述 pass |
今回は何も書き込まないので「pass」で処理を終わらせています。このようにwith文を使うとcloseが無くても自動的にファイルを閉じてくれます。
「as f」のところはファイルを「f」の変数に代入して扱うという意味です。「f.write()」と書くことで書き込みができます。
まとめ
- opne関数にファイルパスを渡す
- os.path.join関数でファイルパスをを作れる
- 読み書きモードの指定
- 文字エンコードの指定
- ファイルを閉じる
- with文なら自動でファイルを閉じる
- ファイル操作で使うosモジュールの関数16個まとめ
- ファイルを読み込む手順【open・close・path・withの使い方】
- ファイルに書き込み・上書き・読み込みする5つの方法【open関数のモード選択】
- フォルダ内のファイル名を取得・名前を変更する方法
- ファイル・フォルダを削除・作成する方法
- 絶対パスと相対パスの判定・変換する方法
- ファイル・フォルダを移動・コピーする方法【shutilモジュールの使い方】
- ファイルを読み込む5通りの方法【リスト・for文・一行ずつ】
- ディレクトリツリーを取得してファイル一覧を表示する方法【os.walkの使い方】
- ファイル・フォルダがあるかどうかの存在確認と判定する方法
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]