質問

与えられるよう "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'

Docsはこちら: https://docs.python.org/3/library/pathlib.html

>>> 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

https://pypi.org/project/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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top