Python | os.path.realpath()-Methode

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Das Python-OS-Modul stellt Funktionen für die Interaktion mit dem Betriebssystem bereit. Das Betriebssystem wird mit Standard-Python-Servicemodulen geliefert. Dieses Modul bietet eine portable Möglichkeit, betriebssystemspezifische Funktionen zu nutzen. Das os.path-Modul ist ein Untermodul des Python OS-Moduls, das zum Verwalten gemeinsam genutzter Pfade verwendet wird. os.path.realpath () wird in Python verwendet, um den kanonischen Pfad des angegebenen Dateinamens zu erhalten Entfernen aller symbolischen Links, die im Pfad vorkommen.
Syntax: os.path.realpath(path) Parameter: path: A path-like Objekt, das den Dateisystempfad darstellt. Ein pfadähnliches Objekt ist entweder ein String- oder ein Bytes-Objekt, das einen Pfad darstellt. Rückgabetyp: Diese Methode gibt einen Zeichenfolgenwert zurück, der den kanonischen Pfad darstellt. 

Softlink oder symbolischen Link erstellen

Unter Unix oder Linux kann ein Softlink oder symbolischer Link mit dem ln-Befehl erstellt werden. Im Folgenden finden Sie die Syntax zum Erstellen eines symbolischen Links auf der Befehlszeile:
$ ln -s {Name der Quelldatei} {Name der symbolischen Datei} 

Beispiel 1

def realpath(self, spec, key): """ Lösen und aktualisieren Sie den Pfadschlüssel in der Spezifikation mit seiner realpath, basierend auf dem Arbeitsverzeichnis. """ if key not in spec: # do nothing for jetzt zurückgeben, wenn nicht spec[key]: logger.warning( "cannot resolve realpath of `%s ` da es nicht definiert ist", key) return check = realpath(join(spec.get( WORKING_DIR, ``), spec[key])) if check != spec[key]: spec[key] = check logger.warning( "realpath von `%s` in `%s` aufgelöst, Spezifikation wird aktualisiert", Schlüssel, check ) return che ck # Setze verwandte Methoden ein 

Beispiel 2

def get_rp_stripper(strip_path): """ Rückgabefunktion zum Strip ``realpath`` of `strip_path` from string Parameters ---------- strip_path: str Pfad zum Strippen vom Anfang der Strings. Verarbeitet zu ``strip_prefix`` von ``realpath(strip_path) + os.path.sep` `. Rückgabe ------- stripper: func-Funktion, so dass ``stripper(a_string)`` ``strip_prefix`` von ``a_string`` entfernen wird, falls vorhanden, andernfalls wird ``a_string`` unverändert """ zurückgegeben get_prefix_stripper(realpath(strip_path) + os.path.sep) 

Beispiel 3

def test_toolchain_standard_not_implemented(self): spec = Spec() with self.assertRaises(NotImplementedError): self.toolchain(spec) with self.assertRaises(NotImplementedError): self.toolchain.assemble(spec) with self.assertRaises(NotImplementedError): self.toolchain.link(spec) # Überprüfen Sie, ob build_dir auf der Spezifikation basierend auf tempfile festgelegt ist self.assertTrue(spec[`build_dir`].startswith( realpath(tempfile.gettempdir()))) # Auch, dass es ordnungsgemäß gelöscht wurde. self.assertFalse(exists(spec[`build_dir`] )) 

Beispiel 4

def find_system_jdks(): """ Gibt eine Menge gültiger JD zurück K-Verzeichnisse durch Durchsuchen von Standardspeicherorten. """ bases = [ `/Library/Java/JavaVirtualMachines`, `/usr/lib/jvm`, `/usr/java`, `/usr/jdk/instances`, r`C:Program FilesJava` ] jdks = set() für base in bases: if isdir(base): for n in os.listdir(base): jdk = join(base, n) mac_jdk = join(jdk, `Contents`, `Home`) if isdir(mac_jdk ): jdk = mac_jdk if is_valid_jdk(jdk): jdks.add(realpath(jdk)) return jdks 

Beispiel 5

def _expand_dirs_to_files(files_or_dirs, recursive=False): files = [] files_or_dirs = _ensure_list(files_or_dirs) for file_or_dir in files_or_dirs: file_or_dir = op.realpath(file_or_dir) if op.isdir(file_or_dir): # Überspringe dirnames beginnend mit `.` if _to_skip(file_or_dir): Continue # Besuche rekursiv die Verzeichnisse und füge die Dateien hinzu if recursive: files.extend(_expand_dirs_to_files([op.join(file_or_dir, file) for file in os.listdir(file_or_dir)], recursive=recursive) ) else: files.extend([op.join(file_or_dir, file) for file in os.listdir(file_or_dir)]) elif `*` in file_or_dir: files.extend(glob.glob(file_or_dir)) else: files.append (file_or_dir) gibt Dateien zurück 

Beispiel 6

def getSubdirs(path, baseNamesOnly=True, excludePythonModulesDirs=True): """Liefert eine Liste von Unterverzeichnissen für den angegebenen Pfad"" " subdirs = [] try: path = realpath(path) + sep for item in os.listdir (Pfad): Kandidat = Pfad + Element, wenn isdir(Kandidat): wenn ausschließenPythonModulesDirs: modFile = Kandidat + sep + "__init__.py" wenn vorhanden (modFile): fortfahren, wenn baseNamesOnly: subdirs.append(item) sonst: subdirs.append (Kandidat) außer: pass return subdirs 

Beispiel 7

def get_dataset(num_points): name = `ModelNet10` path = osp.join(osp.dirname(osp.realpath(__file__)), `..`, `data`, name) pre_transform = T.NormalizeScale() transform = T.SamplePoints(num_points) train_dataset = ModelNet( path, name=`10`, train=True, transform=transform, pre_transform=pre_transform) test_dataset = ModelNet(path, name=`10`, train=False, transform=transform, pre_transform=pre_transform) return train_dataset, test_dataset 

Beispiel 8

def getParameters(self): """Stellt ein Wörterbuch mit den Suchparametern bereit""" parameters = {`term`: self.findCombo.currentText(), `case`: self.caseCheckBox.isChecked( ), `ganz`: self.wordCheckBox.isChecked(), `regexp`: self.regexpCheckBox.isChecked()} if self.projectRButton.isChecked(): parameters[`in-project`] = True parameters[`in- geöffnet`] = Falsch parameters[`in-dir`] = `` elif self.openFilesRButton.isChecked(): parameters[`in-project`] = F alse parameters[`in-opened`] = True parameters[`in-dir`] = `` else: parameters[`in-project`] = False parameters[`in-opened`] = False parameters[`in-dir `] = realpath( self.dirEditCombo.currentText().strip()) parameters[`file -filter`] = self.filterCombo.currentText().strip() Rückgabeparameter 

Beispiel 9

def _check_if_pyc(fname): """Gib True zurück, wenn die Erweiterung . pyc, False, wenn .py und None, wenn sonst""" from imp import find_module from os.path import realpath, dirname, basename, splitext # Den Dateipfad für find_module() normalisieren filepath = realpath(fname) dirpath = dirname(filepath) module_name = splitext(basename(filepath))[0] # Validiere und hole try: fileobj, fullpath, (_, _, pytype) = find_module(module_name, [dirpath]) außer ImportError : raise IOError("Kann Konfigurationsdatei nicht finden. " "Pfad möglicherweise falsch!: {0}".format(filepath)) return pytype, fileobj, fullpath 

Beispiel 10

def get_planetoid_dataset(name, normalize_features=False, transform= Keine): path = osp.join(osp.dirname(osp.realpath(__file__)), `..`, `data`, name) dataset = Planetoid(path, name) if transform is not None und normalize_features: dataset.transform = T.Compose([T.NormalizeFeatures(), transform]) elif normalize_features: dataset. transform = T.NormalizeFeatures() elif transform ist nicht None: dataset.transform = Transform Rückgabedatensatz 

Beispiel 11

def _setup_logger(cls, log_file=None): formatter = Protokollierung. Formatter( fmt="%(asctime)s %(levelname)-8s %(message)s", datefmt="%Y-%m-%d %H:%M:%S" ) screen_handler = logging.StreamHandler( stream=sys.stdout) screen_handler.setFormatter(formatter) logger = logging.getLogger(cls.__name__) logger.setLevel(logging.DEBUG) logger.addHandler(screen_handl er) if log_file: file_handler = logging.FileHandler(realpath(log_file), mode="w" ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) Protokollierung zurückgeben 

Beispiel 12

def bro_server(bro_file, interface="eth0", bro_path="/usr/local/ bro/bin/bro"): u""" Ë∑ëbroÊúçÂä°ËøõÁ®ã """ # Ëé∑ÂèñÁªùÂØπË∑ØÂæÑ bro_file = path.realpath(bro_file) http_file = "/usr/local/bro/share/bro/base/protocols/http/main.bro" bro_scripts = ` `.join([bro_file, http_file ]) cmd = "sudo {bro_path} -C -b -i {interface} {bro_scripts}" cmd = cmd.format(bro_path=bro_path, interface=interface, bro_scripts=bro_scripts) msg = "der cmd ist: %s" % cmd logging.info(msg) # pwd in /tmp ändern tmp_dir = path.join(path.dirname(path.realpath(__file__)), `../../tmp/`) chdir(tmp_dir) result = r un(cmd) logging.info(result.__dict__) 

Beispiel 13

def ProcessFlags(env, flags): for f in flags: if f: env.MergeFlags(str( f)) # relativen CPPPATH für i, p in enumerate(env.get("CPPPATH", [])) korrigieren: if isdir(p): env[`CPPPATH`][i] = realpath(p) # Irgendeine vorherige Definition des Namens aufheben, entweder eingebaut oder # mit einer Option -D versehen // Issue #191 undefines = [u für u in env.get("CCFLAGS", []) if u.startswith("-U")] if undefines: for undef in undefines: env[`CCFLAGS`].remove(undef) env. Append(_CPPDEFFLAGS=" %s" % " ".join(undefines)) 

Beispiel 14

def _get_settings_helper(self): main_dir = path.dirname(path.realpath(__file__)) main_dir = path.realpath(path.join(main_dir, `..`, `..`)) default_filepath = path.join(main_dir, `default_settings. yml`) user_filepath = path.join(main_dir, `settings.yml`) args = self._get_args() if args.settings_path: user_filepath = args.settings_path # öffne die Standarddatei und erhalte Versionsinformationen mit open(default_filepath) als default_filestream : default_filesettings = yaml.load(default_filestream) # FIXME: not used current_version = default_filesettings[`version`].split(`.`) # flake8: noqa if path.exists(user_filepath): filepath = user_filepath else: filepath = default_filepath with open(filepath) as setting_file: self.settings = yaml.load(setting_file, _OrderedLoader) return SpecialDict(**self.settings) 

Beispiel 15

def resolve_rpath(lib_path, rpaths ): """ Gibt `lib_path` mit aufgelöstem `@rpath` zurück. Wenn der `lib_path` kein `@rpath` hat, wird er so zurückgegeben, wie er ist. Wenn „lib_path“ „@rpath“ enthält, wird die erste gefundene „rpaths“/„lib_path“-Kombination zurückgegeben. Wenn die Bibliothek nicht in „rpaths“ gefunden werden kann, wird eine detaillierte Warnung ausgegeben und „lib_path“ unverändert zurückgegeben. Parameter ---------- lib_path: str Der Pfad zu einer Bibliotheksdatei, die mit `@rpath` beginnen kann oder nicht. rpaths: Sequenz von str Eine Sequenz von Suchpfaden, die normalerweise von einem Aufruf von `get_rpaths` erhalten wird. Rückgabe ------- lib_path: str Ein str mit den aufgelösten Bibliotheken realpath. """ wenn nicht lib_path.startswith(`@rpath/`): gebe lib_path lib_rpath = lib_path.split(`/`, 1)[1] für rpath in rpaths zurück: rpath_lib = realpath(pjoin(rpath, lib_rpath)) if os.path.exists(rpath_lib): return rpath_lib warnings.warn( "Konnte { nicht finden 0} auf Pfaden: {1}".format( lib_path, ` `.join(realpath( path) für path in rpaths), ) ) return lib_path 

Example 16

def wheel_libs(wheel_fname, filt_func=None): """ Rückgabeanalyse von Bibliotheksabhängigkeiten mit einem Python-Wheel Verwenden Sie diese Routine für einen Dump des Abhängigkeitsbaums. Parameter ---------- wheel_fname: str Dateiname des Rads filt_func: Keiner oder aufrufbar, optional Wenn keiner, alle Dateien auf Bibliotheksabhängigkeiten untersuchen. Wenn aufrufbar, akzeptiert Dateiname als Argument, gibt True zurück, wenn wir die Datei untersuchen sollen, andernfalls False. Rückgabe ------- lib_dict: Diktatwörterbuch mit (Schlüssel, Wert) Paaren von (``libpath``, ``dependings_dict``). ``libpath`` ist die Bibliothek, von der abhängig ist, relativ zum Wurzelpfad des Rads, falls innerhalb des Radbaums. ``dependings_dict`` ist (Schlüssel, Wert) von (``depending_lib_path``, ``install_name``). Auch hier ist „depending_lib_path“ eine Bibliothek relativ zum Wurzelpfad des Rads, falls innerhalb des Radbaums. """ mit TemporaryDirectory() als tmpdir: zip2dir(wheel_fname, tmpdir) lib_dict = tree_libs(tmpdir, filt_func) return stripped_lib_dict(lib_dict, realpath(tmpdir) + os.path.sep) 

Beispiel 17

def main(): parser = OptionParser( usage="%s WHEEL_OR_PATH_TO_ANALYZE " % sys.argv[0] + __doc__, version="%prog " + __version__) parser.add_options([ Option("-a", "--all", action="store_true", help="Alle Abhängigkeiten anzeigen , einschließlich Systembibliotheken"), Option("-d", "--depending", action="store_true", help="Bibliotheken abhängig von Abhängigkeiten anzeigen")]) (opts, paths) = parser.parse_args() if len(Pfade) < 1: parser.print_help() sys.exit(1) multi = len(Pfade) > 1 für Pfade in Pfaden: if multi: print(path + `:`) indent = ` ` else: indent = `` if isdir(path): lib_dict = tree_libs(path) lib_dict = stripped_lib_dict(lib_dict, realpath (getcwd()) + psep) e lse: lib_dict = wheel_libs(path) keys = sorted(lib_dict) if not opts.all: keys = [key for key in keys if filter_system_libs(key)] if not opts.depending: if len(keys): print(indent + (` ` + indent).join(keys)) Continue i2 = indent + ` ` for key in keys: print(indent + key + `:`) libs = lib_dict[key] if len(libs): print(i2 + (` ` + i2).join(libs)) 

Beispiel 18

def test_given_directory(): # Teste InGivenDirectory cwd = getcwd() mit InGivenDirectory() als tmpdir: assert_equal( tmpdir, abspath(cwd)) assert_equal(tmpdir, abspath(getcwd())) mit InGivenDirectory(MY_DIR) als tmpdir: assert_equal(tmpdir, MY_DIR) assert_equal(realpath(MY_DIR), realpath(abspath (getcwd()))) # Wir haben das gegebene Verzeichnis gelöscht! Überprüfen Sie nicht so jetzt. assert_true(isfile(MY_PATH)) 

Beispiel 19

def believeClean(workDir, architecture, aggressiveCleanup): """ Entscheidet, was gelöscht werden soll, ohne es tatsächlich zu tun: - Finden Sie alle Symlinks in „BUILD“ – Finde alle Verzeichnisse in „BUILD“ – Plane ein Verzeichnis zum Löschen, wenn es keinen Symlink „““ hat symlinksBuild = [os.readlink(x) for x in glob.glob(“%s/ BUILD/*-latest*" % workDir)] # $WORK_DIR/TMP sollte immer bereinigt werden. Dies passiert nicht nur # wenn uns beim Entpacken der Platz ausgeht. # $WORK_DIR//store kann ebenfalls bereinigt werden, da # wir die eigentlichen Tarballs nicht benötigen, nachdem sie erstellt wurden. toDelete = ["%s/TMP" % workDir] if aggressiveCleanup: toDelete += ["%s/TARS/%s/store" % (workDir, architecture), "%s/SOURCES" % (workDir)] allBuildStuff = glob.glob("%s/BUILD/*" % workDir) toDelete += [x für x in allBuildStuff if not path.islink(x) and not basename(x) in symlinksBuild] installGlob ="%s/%s/ */" % (workDir, architecture) installedPackages = set([dirname(x) for x in glob.glob(installGlob)]) symlinksInstall = [] for x in installedPackages: symlinksInstall += [path.realpath(y) for y in glob.glob(x + "/latest*")] toDelete += [x for x in glob.glob(installGlob+ "*") wenn nicht path.islink(x) und nicht path.realpath(x) in symlinksInstall] toDelete = [x für x in toDelete if path.exists(x)] return toDelete 

Beispiel 20

def _get_script_dir(follow_symlinks: bool = True ) -> Pfad: # Es ist schwierig, den Pfad zu den Vertrauensspeichern zu ermitteln aufgrund geringfügiger Unterschiede unter OS X, Linux und Windows if getattr(sys, "frozen", False): # py2exe, PyInstaller, cx_Freeze path = Path(sys.executable).absolute() else: path = Path(inspect.getabsfile (_get_script_dir)) if follow_symlinks: path = Path(realpath(path)) return path.parent 

Archiv

os.path.realpath() wird in Python verwendet, um den kanonischen Pfad eines angegebenen Dateinamens zu erhalten, indem alle im Pfad gefundenen symbolischen Links entfernt werden.

Syntax: os.path.realpath (path)

Parameter:
path : A pfadähnliches Objekt, das den Dateisystempfad darstellt.
Ein pfadähnliches Objekt ist entweder ein String - oder ein Byte -Objekt, das einen Pfad darstellt.

Rückgabetyp: Diese Methode gibt einen Zeichenfolgenwert zurück, der den kanonischen Pfad darstellt.

Softlink oder symbolischen Link erstellen
Unter Unix oder Linux kann ein Softlink oder symbolischer Link mit dem ln-Befehl erstellt werden. Folgend ist die Syntax zum Erstellen eines symbolischen Links auf der Befehlszeile:

$ ln -s {Name der Quelldatei} {Name der symbolischen Datei} 

Beispiel:

Beispiel:

In der obigen Ausgabe " / home / ihritik / Desktop / file (shortcut) .txt " ist ein symbolischer Link.

Code: unter Verwendung von os.path.realpath () Methode, um symbolische Links mit kanonischem Pfad und Auflösung zu erhalten.

< tr>

# Python-Programm zur Erläuterung des os.path.realpath () method

  
# Import des os-Moduls

import os

 
# Pfad

path = "/ home / ihritik / Desktop / file (shortcut) .txt"

 

 
# Holen Sie sich den kanonischen Pfad
# des angegebenen Pfades
# durch Entfernen aller symbolischen Links
# unterwegs getroffen

real_path = os.path.realpath (Pfad)

 
# Drucke den kanonischen Pfad

print ( echter_Pfad)

 

 
# Pfad

path = "/../../ GeeksForGeeks / sample.py"

 

 
# Hole den kanonischen Pfad
# des angegebenen Pfades
# Eliminierung jeglicher s Symbolische Links
# im Pfad gefunden

real_path = os.path.realpath (Pfad)

 
# Drucke den kanonischen Pfad

print (real_path)

 

 
# Path

path = "file.txt"

  

  
# Holen Sie sich den kanonischen Pfad
# angegebener Pfad
# alle symbolischen Links entfernen
# erfüllt unterwegs

real_path = os . path.realpath (Pfad)

 
# Drucke den kanonischen Pfad

print (real_path)

 

os.chdir ( " / home / ihritik / Downloads / " )

 

 
# Pfad

Pfad = "file.txt"

 
# Hole den kanonischen Pfad
# des angegebenen Pfades
# Eliminierung jeglicher symbolischer Links
# im Pfad gefunden

real_path = os.path.realpath (Pfad)

  
# Drucke den kanonischen Pfad

print ( real_path)

Beenden:

/ home / ihritik / Documents / file (original) .txt /GeeksForGeeks/sample.py /home/ihritik/file.txt /home/ihritik/Downloads /file.txt 

Link: https: / /docs.python.org/3/library/os.path.html