Pythonでファイルを読み込む手順【open・close・path・withの使い方】

Pythonでのファイル操作方法を紹介します。この方法を使うとたくさんのファイルを一度に読み込んだり、書き込んだりすることが可能です。

このファイル操作を理解するためにはファイルパスやカレントディレクトリ、ルートディレクトリの知識がひつようになります。

関連記事

今回は「ルートディレクトリ・カレントディレクトリ・ファイルパス」の説明をします。 もし、「ディレクトリ」という言葉が分からない場合は下の記事をご覧ください。 [sitecard subtitle=関連記事 url="https[…]

関連記事

パソコンを使ったことがあるのなら一度は聞いたことがあるとは追うこれらの言葉「ファイル・フォルダ・ディレクトリ」の違いを説明していきたいと思います。 本棚に本がたくさん入っているようにフォルダ(ディレクトリ)の中にファイルが入っている[…]

1.ファイルパスを取得

➀絶対パスを取得

  • ファイルパスとはコンピュータ上でファイルの場所を示す住所のこと
  • Windwsなら画像のようにExplorerから確認できる
  • 「パスのコピー」でクリップボードにコピーされる
    • ファイルの絶対パスがコピーされる
ファイルパスの確認方法

画像の「スケジュールファイル」の場合、いかの絶対パスがクリップボードにコピーされます。

“C:\Users\Desktop\ブログ\スケジュール.xlsx”

この方法は直接パスを取得していますが、ほかにもosモジュールを使ってディレクトリを連結させる方法があります。

②osモジュールで連結する方法

  • osモジュールをインポート
  • os.path.join関数にディレクトリをカンマ区切りで渡す
  • WindwsでもMacでも使えるパスにしてくれる

Windwsでは「¥」Macでは「\」というようにファイルパスの区切り文字が異なります。ですが、os.path.join関数を使うとどちらでも対応してくれるわけですね。

ここまでで取得したファイルパスをopen関数に渡すとファイルを開くことができます。

2.ファイルを開く

➀opne関数を使う

  • open関数にファイルパスを渡す
  • 絶対パスでも相対パスでも可能
  • path変数にファイルの絶対パスを代入(1行目)
    • raw列になっている
  • open関数にpathを渡す(2行目)
  • 読み込みモードを指定(2行目)
  • ファイルを閉じる(3行目)
関連記事

Pythonで文字列を扱うときには細かいルールがたくさんあります。今回はraw列やエスケープ文字の解説をしていきますが、その前にそのルールを確認しておきましょう。 文字列のルール クォートで挟んで表す。シングルクォート(’)で[…]

ファイルを開くのと閉じるのは必ずセットで行いましょう。ファイルから値を読み込んだり書き込んだりする場合は2行目と3行目の間に処理を書き込みます。

②読み書きのモードを指定

  • 「読み込み専用・書き込み専用・読み書き専用」がある
  • 読み込み専用:r
  • 書き込み専用:w(上書きされる)
    • ファイルがなければ新規作成される
  • 書き込み専用:a(追加される)
  • バイナリーモード:b(読み書き両方)

➂文字エンコードの指定

日本語などの「非アスキー文字」を含むファイルを読み書きする場合は文字エンコードを指定する必要があります。

opne関数に「encoding=”utf-8″」というキーワード引数を渡します。

その他にも「Shift-jis」などの文字エンコードがあります。

➃ファイルを閉じる

open関数でファイルを開いたらcloseで閉じます。そうしないとエラーの原因になります。

ファイルのクローズまで一括で行う

最後にファイルを閉じるところまでを一括で行うには「with」を使います。

今回は何も書き込まないので「pass」で処理を終わらせています。このようにwith文を使うとcloseが無くても自動的にファイルを閉じてくれます。

「as f」のところはファイルを「f」の変数に代入して扱うという意味です。「f.write()」と書くことで書き込みができます。

まとめ

  • opne関数にファイルパスを渡す
    • os.path.join関数でファイルパスをを作れる
  • 読み書きモードの指定
  • 文字エンコードの指定
  • ファイルを閉じる
    • with文なら自動でファイルを閉じる

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]