どのようにファイルの絶対パスPython
-
09-06-2019 - |
質問
与えられるよう "mydir/myfile.txt"
, どのようにはどのようにファイルの絶対パスの対比での現在の作業ディレクトリにPython?E.g.Windowsでは、私もよいでしょう。
"C:/example/cwd/mydir/myfile.txt"
解決
>>> import os
>>> os.path.abspath("mydir/myfile.txt")
'C:/example/cwd/mydir/myfile.txt'
もの作品が既に存在する場合は絶対パス:
>>> import os
>>> os.path.abspath("C:/example/cwd/mydir/myfile.txt")
'C:/example/cwd/mydir/myfile.txt'
他のヒント
を使用できる、新しいPython3.4図書館 pathlib
.(使用できる必要がありますのでPython2.6 2.7用 pip install pathlib
.) 著者 書:"この図書館が提供する簡単な階層クラスの取扱いファイルシステムの経路に共通操作ユーザーになりました。"
に絶対パス窓:
>>> from pathlib import Path
>>> p = Path("pythonw.exe").resolve()
>>> p
WindowsPath('C:/Python27/pythonw.exe')
>>> str(p)
'C:\\Python27\\pythonw.exe'
またはUNIX:
>>> from pathlib import Path
>>> p = Path("python3.4").resolve()
>>> p
PosixPath('/opt/python3/bin/python3.4')
>>> str(p)
'/opt/python3/bin/python3.4'
>>> import os
>>> os.path.abspath('mydir/myfile.txt')
'C:\\example\\cwd\\mydir\\myfile.txt'
>>>
これは、インストールのモジュール( PyPI
でラップすべての os.path
の機能やその他の関連する機能メソッドオブジェクトに使用できるものの文字列が使われています:
>>> from path import path
>>> path('mydir/myfile.txt').abspath()
'C:\\example\\cwd\\mydir\\myfile.txt'
>>>
今日にお使いいただけます unipath
パッケージを基調とした path.py
: http://sluggo.scrapping.cc/python/unipath/
>>> from unipath import Path
>>> absolute_path = Path('mydir/myfile.txt').absolute()
Path('C:\\example\\cwd\\mydir\\myfile.txt')
>>> str(absolute_path)
C:\\example\\cwd\\mydir\\myfile.txt
>>>
私の使用をお勧めしこのパッケージで提供 クリーンインターフェース共通のosとなる。道光熱費.
更新のためのPython3.4+ pathlib
うという問いに対する答え:
from pathlib import Path
relative = Path("mydir/myfile.txt")
absolute = relative.absolute() # absolute is a Path object
場合にだけ必要な時文字列に利用できる Path
オブジェクトのすべての関連する機能 os.path
, どのコース abspath
:
from os.path import abspath
absolute = abspath(relative) # absolute is a str object
import os
os.path.abspath(os.path.expanduser(os.path.expandvars(PathNameString)))
ご注意 expanduser
必要(Unixの場合、指定された発現のためのファイルまたはディレクトリの名前と場所が含まれている場合があり先 ~/
(チルドはユーザのホームディレクトリ) expandvars
のその他の環境変数など $HOME
).
Iりませんので、予めごglob
ここではどのように一覧すべてのファイルの種類は、現在のフォルダー:
import glob
for x in glob.glob():
print(x)
ここではどのように一覧表示用します。txtファイルの現在のフォルダー:
import glob
for x in glob.glob('*.txt'):
print(x)
ここではどのように一覧すべてのファイルの種類を選んだディレクトリ:
import glob
for x in glob.glob('C:/example/hi/hello/'):
print(x)
ことを期待したい
モジュール os
の提供とその応用についてはabsます。
が のパスをLinuxでは、controlelrディレクトリにて開始 ~
(チルダ)、な満足のいく結果です。
利にご利用いただけます srblib
います。
>>> import os
>>> os.path.abspath('~/hello/world')
'/home/srb/Desktop/~/hello/world'
>>> from srblib import abs_path
>>> abs_path('~/hello/world')
'/home/srb/hello/world'
インストールで使用 python3 -m pip install srblib
の場合mac
import os
upload_folder = os.path.abspath("static/img/users")
これまでのフルパス:
print(upload_folder)
の以下のパス:
>>>/Users/myUsername/PycharmProjects/OBS/static/img/user
場合には誰かがpythonを使用した、linuxおよび宿のフルパスをファイル:
>>> path=os.popen("readlink -f file").read()
>>> print path
abs/path/to/file
この 常に を取得しますファイル名の右にスクリプトのエラーメッセージがあっても、内から呼び出される別のスクリプト特に有利用の場合 subprocess
.
import sys,os
filename = sys.argv[0]
り、これらのスクリプトのフルパス:
>>> os.path.abspath(filename)
'/foo/bar/script.py'
でもやフォルダに移動するだけで追加 /..
何回でも行きたい'のディレクトリ'上位の階層となります。
のcwd:
>>> os.path.abspath(filename+"/..")
'/foo/bar'
の親のパス:
>>> os.path.abspath(filename+"/../..")
'/foo'
を組み合わせ "/.."
その他のファイル名、ファイルにアクセスすることができます。
filePath = os.path.abspath(directoryName)
filePathWithSlash = filePath + "\\"
filenameWithPath = os.path.join(filePathWithSlash, filename)