Pythonスクリプトと同じディレクトリにあるファイルを開く方法
実行中のPythonスクリプトと同じディレクトリにあるファイルを開く最も確実な方法は、sys.path[0]を使うことです。この変数には、現在実行中のスクリプトが存在するディレクトリのパスが格納されています。これを利用すれば、目的のファイルへの相対パスを結合し、確実にそのファイルを開くことができます。
具体例
例えば、実行中のスクリプトと同じディレクトリに「my_file.txt」というファイルがある場合、次のようにして開けます。
import os
import sys
with open(os.path.join(sys.path[0], "my_file.txt"), "r") as f:
print(f.read())
このコードは、スクリプトと同じディレクトリに対象のファイルが存在していれば、そのファイルを開いて内容を読み込み、表示します。
注意点
sys.path[0]を使用する際は、sysモジュールのインポートを忘れないようにしましょう。
また、より現代的な書き方としては、Python 3.4以降で利用できるpathlibモジュールを使う方法もあります。__file__(現在実行中のスクリプト自身のパス)から親ディレクトリを取得するアプローチです。
from pathlib import Path
script_dir = Path(__file__).parent
with open(script_dir / "my_file.txt", "r", encoding="utf-8") as f:
print(f.read())
どちらの方法でも、カレントワーキングディレクトリ(実行時の作業フォルダ)に依存せず、スクリプトの場所を基準としてファイルへアクセスできるため、スクリプトを別の場所から実行しても正しく動作します。設定ファイルやデータファイルを読み込む際にぜひ活用してください。
-
PythonのTkinterでファイル選択ダイアログを使い、選択したディレクトリの場所を表示・保存する方法
ダイアログボックスは、さまざまな種類のアプリケーションでおなじみのUI要素であり、ユーザーとの対話が重要となるアプリケーション開発において非常に役立ちます。ダイアログボックスを利用すれば、ユーザーにファイルの選択を求め、その後、ファイルの読み込みや書き込みといった操作を実行できます。Pythonでは、filedialogモジュールを使用することで、こうしたダイアログボックスを簡単に作成できます。 サンプルコード 以下の例では、ローカルディレクトリからファイルを選択するようユーザーに促し、選択されたファイルの場所(パス)をラベルウィジェットで表示するアプリケーションを作成します。 #Import
-
Pythonでファイルを追記モード(append)で開く方法
Pythonでファイルを追記モードで開く方法Pythonで既存のファイルにデータを追加(追記)したい場合は、open()関数のモード引数に a(append=追記)を指定します。追記モードで開いたファイルへの書き込みは、常にファイルの末尾に対して行われ、既存の内容が上書きされることはありません。基本的な使い方f = open(my_file.txt, a) f.write(Hello World) f.close()このコードは my_file.txt を追記モードで開き、ファイルの末尾に「Hello World」という文字列を追加します。元の内容はそのまま保持されます。with文を使った安全