icon
icon

Pythonでファイルの存在を確認する方法【初心者向け】現役エンジニアが解説

初心者向けにPythonでファイルの存在を確認する方法について解説しています。外部から受け取ったファイルを処理する際、まず最初にそのファイルの存在を確認する必要があります。existsメソッド、isfileメソッド、isdirメソッドを使った確認方法をそれぞれの違いを見ながら学習していきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonでファイルの存在を確認する方法について解説します。

目次

1時間でできる無料体験!

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ファイルの存在を確認する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ファイルの存在を確認する理由は?

プログラミングでは、ファイルとして保存されているテキストや写真の画像を読み込んで処理する場合があります。

例えば以下のような処理を考えてみましょう。

  1. プログラム (.pyファイルや.ipynbファイル) と同じフォルダにある「test.txt」というファイルを開く
  2. ファイルを読み込む
  3. ファイルの内容を画面に表示する

この場合、1番目の処理でファイルが存在しないと、2番目以降の処理を正しく行うことができません。

またプログラムからファイルにデータを書き込む際も、同名のファイルがすでに存在しないかを確認する必要があります。

同名のファイルが存在する場合、直ちに内容が上書きされてしまいますし、Officeやメモ帳のように「元に戻す」こともできません。

さらに、プログラムの途中でファイルが存在する・しない場合で条件分岐を行い、その後の処理パターンを分けるような書き方も便利です。

このように、ファイルの存在を確認することは、プログラムで様々な処理を行うためにとても重要です。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

ファイルがあるか確認する方法

Python では、標準のosライブラリを用いてファイルの存在を確認できます。

ファイルまたはフォルダの存在を確認するには exists メソッドを使用します。

os.path.exists(ファイルまたはフォルダのパス)

 

ファイルだけの存在を確認するには isfile メソッドを使用します。

os.path.isfile(ファイルのパス)

 

一方、フォルダ(ディレクトリ)だけの存在を確認するには isdir メソッドを使用します。

os.path.isdir(フォルダのパス)

 

上記のコードはいずれも、ファイルやフォルダが存在する場合には True が、そうでない場合には False が返り値として出力されます。

 

実際に書いてみよう

今回のサンプルプログラムでは、exists 、 isfile 、 isdir メソッドを使い、 ファイルまたはフォルダの存在を確認する方法を紹介します。

実行はPythonインタプリタで行います。

(インタプリタに関する説明はこちらをご参考ください)

コマンドラインで「python」と入力すると「>>>」と表示されますので、1行ずつプログラムを入力します。

コマンドラインとはWindowsではコマンドプロンプト、macやLinuxではターミナルと呼ばれる、コンピュータに指令を出すためのソフトウェアです。

ここでは、プログラムを実行するフォルダ (ディレクトリ) に「hello.txt」というファイルと「Python」というフォルダがあると仮定しましょう。

 

はじめに、必要なライブラリをインポートします。

import os

 

次にファイルの存在を確認してみましょう。

os.path.exists('hello.txt')

実行結果は以下のようになります。

True

 

次に、フォルダの存在を確認します。

os.path.exists('Python')

実行結果は以下のようになります。

True

 

つづいて、ファイルだけの存在を確認します。

os.path.isfile('hello.txt')

実行結果は以下のようになります。

True

 

つづいて、フォルダだけの存在を確認します。

os.path.isdir('Python')

こちらも実行結果は以下のようになります。

True

 

最後に、存在しないファイルやフォルダに対して適用するとどうなるか見てみましょう。

os.path.exists('goodmorning.txt')
または
os.path.isfile('Python')
または
os.path.isdir('hello.txt')

上記はいずれも実行結果は以下のようになります。

False

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

実践的な使い方

実際のプログラミングでは、以下のようにファイルの有無を条件分岐と組み合わせて使用することがあります。

(条件分岐に関する説明はこちらをご参考ください)

ここではファイルが存在する場合「hello.txt」を読み込んで中身を出力するようにしましょう。

hello.txtには各国の挨拶が記載されています。

if(os.path.exists('hello.txt')):
    fileobj = open('hello.txt')
    data = fileobj.read()
    fileobj.close()
    print(data)

 

「hello.txt」ファイルが存在する場合、実行するとファイルの内容が表示されます。

こんにちは
Hello
你好

ちゃんとファイルの中身が出力されていますね!

このように、ファイルが存在するかの確認は、条件分岐と組み合わせて便利な処理を行うことができます。

 

執筆してくれたメンター

太田和樹(おおたかずき)

ITベンチャー企業のPM兼エンジニア普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

1時間でできる無料体験!

Pythonを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を完全オンラインでしっかり習得できます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する