web-dev-qa-db-ja.com

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

現在のファイルのディレクトリパスを取得したいのですが。
私は試した:

>>> os.path.abspath(__file__)
'C:\\python27\\test.py'

しかし、どうすればディレクトリのパスを取得できますか?例えば:

'C:\\python27\\'
583
Shubham

実行されているスクリプトのディレクトリを意味するなら:

import os
os.path.dirname(os.path.abspath(__file__))

現在の作業ディレクトリを意味するなら:

import os
os.getcwd()

fileの前後には2つのアンダースコアがあり、1つだけではありません。

また、対話的に実行している場合や、ファイル以外のもの(例:データベースやオンラインリソース)からコードを読み込んだ場合は、 "現在のファイル"という概念がないため__file__が設定されない場合があります。上記の答えは、ファイル内にあるpythonスクリプトを実行するという最も一般的なシナリオを想定しています。

1213
Bryan Oakley

Python 3では:

from pathlib import Path

mypath = Path().absolute()
print(mypath)

pathlib のドキュメント

38
Ron Kalian
import os
print os.path.dirname(__file__)
9
chefsmart

次のようにosos.pathライブラリを簡単に使うことができます

import os
os.chdir(os.path.dirname(os.getcwd()))

os.path.dirnameは現在のディレクトリから上位ディレクトリを返します。ファイル引数を渡さず、絶対パスを知らなくても、上位レベルに変更できます。

5
mulg0r

Python 3.xでは、

from pathlib import Path

path = Path(__file__).parent.absolute()

説明:

  • Path(__file__)は現在のファイルへのパスです。
  • .parentはあなたに ディレクトリ ファイルが入っているディレクトリを与えます。
  • .absolute()はあなたに 絶対パス を与えます。

pathlibを使うことは、パスを扱うための現代的な方法です。何らかの理由で後で文字列として必要になった場合は、str(path)を実行してください。

3
Arminius

PYTHONで有用なパスの性質:

 from pathlib import Path

    #Returns the path of the directory, where your script file is placed
    mypath = Path().absolute()
    print('Absolute path : {}'.format(mypath))

    #if you want to go to any other file inside the subdirectories of the directory path got from above method
    filePath = mypath/'data'/'fuel_econ.csv'
    print('File path : {}'.format(filePath))

    #To check if file present in that directory or Not
    isfileExist = filePath.exists()
    print('isfileExist : {}'.format(isfileExist))

    #To check if the path is a directory or a File
    isadirectory = filePath.is_dir()
    print('isadirectory : {}'.format(isadirectory))

    #To get the extension of the file
    fileExtension = mypath/'data'/'fuel_econ.csv'
    print('File extension : {}'.format(filePath.suffix))

OUTPUT: 絶対パスISピットンファイルIS配置先のパス

絶対パス:D:¥Study¥Machine Learning¥Jupitor Notebook¥JupytorNotebookTest2¥Udacity_Scripts¥Matplotlibおよびseaborn Part2

ファイルパス:D:\ Study\Machine Learning\Jupitor Notebook\JupytorNotebookTest2\Udacity_Scripts\Matplotlibとseaborn Part2\data\fuel_econ.csv

isfileExist:True

isadirectory:False

ファイル拡張子:.csv

1
Arpan Saini

現在のフォルダを取得するために、CGIのIISの下でpythonを実行するときに使用する関数を作成しました。

import os 
   def getLocalFolder():
        path=str(os.path.dirname(os.path.abspath(__file__))).split('\\')
        return path[len(path)-1]
0
Gil Allen

プラットフォーム(macOS/Windows/Linux)間でマイグレーションの一貫性を保つには、次のことを試してください。

path = r'%s' % os.getcwd().replace('\\','/')
0
Qiao Zhang

IPythonには、現在の作業ディレクトリを取得するためのマジックコマンド%pwdがあります。次のように使用することができます。

from IPython.terminal.embed import InteractiveShellEmbed

ip_Shell = InteractiveShellEmbed()

present_working_directory = ip_Shell.magic("%pwd")

IPython Jupyter Notebookでは%pwdは次のように直接使用できます。

present_working_directory = %pwd
0
Nafeez Quraishi

これを試して:

import os
dir_path = os.path.dirname(os.path.realpath(__file__))
0

システム:MacOS

バージョン:Python 3.6(アナコンダ付き)

import os rootpath = os.getcwd() os.chdir(rootpath)

0
Suyang Xu