Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで現在のファイルのフルパスとディレクトリを取得する方法

Pythonで実行中のファイルの完全なパス(フルパス)を取得するには、標準ライブラリの os モジュールを使用します。最もシンプルで確実な方法は、os.path.realpath(__file__) を呼び出すことです。

例:os.path.realpath() を使う方法

>>> import os
>>> print(os.path.realpath(__file__))
/home/ayush/qna/path.py

__file__ は現在実行中のスクリプトファイルの名前を示す組み込み変数であり、os.path.realpath() はシンボリックリンクを解決した上で絶対パスを返します。これにより、環境に依存しない正確なフルパスが得られます。

ディレクトリ部分だけを取得したい場合

ファイル名を除いたディレクトリのパスが必要な場合は、os.path.dirname() を組み合わせます。

>>> import os
>>> os.path.dirname(os.path.realpath(__file__))
'/home/ayush/qna'

pathlib を使ったモダンな書き方(Python 3.4以降)

近年のPythonでは、より直感的に扱える pathlib モジュールの使用が推奨されています。

>>> from pathlib import Path
>>> Path(__file__).resolve()
PosixPath('/home/ayush/qna/path.py')

ディレクトリだけを取得する場合は Path(__file__).resolve().parent を使用します。Path オブジェクトは文字列との連結やパス操作が容易なため、新規コードではこちらを採用すると良いでしょう。

  1. Python 3のtkinterでファイルダイアログから文字列(ファイルパス)を取得する方法

    tkinterアプリケーションでファイルシステムを操作したい場合には、filedialogモジュールを利用します。このモジュールは、システム上のファイルを扱うための仕組みを提供しており、さまざまな種類のファイルダイアログを簡単に作成できる組み込み関数を多数備えています。用途に応じて任意のfiledialog関数を選択し、アプリケーションに組み込むことが可能です。中でも最もよく使われているのがfiledialog.askopenfilename()です。この関数を呼び出すと、ユーザーにファイルを開かせるためのダイアログが表示され、選択されたファイルのパスを文字列として受け取ることができます。サン

  2. 【Python入門】ファイル読み込み中の現在の行番号を取得する2つの方法

    Pythonで現在の行番号を取得するには?Pythonの標準ファイルオブジェクトには、現在読み込んでいる行番号を直接取得する機能は備わっていません。しかし、工夫次第で簡単に実現できます。ここでは代表的な2つの方法を紹介します。方法1:ラッパークラスを作成するファイルオブジェクトを包み込む(ラップする)クラスを定義し、readline()が呼ばれるたびに行番号をカウントする方法です。__enter__と__exit__を実装しているため、with文とも組み合わせられます。class FileLineWrapper(object): def __init__(self, file):