Python | os.path.realpath() metodo

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Il modulo Python OS fornisce funzioni per interagire con il sistema operativo. Il sistema operativo viene fornito con moduli di servizio Python standard. Questo modulo fornisce un modo portatile per utilizzare funzionalità specifiche del sistema operativo. Il modulo os.path è un sottomodulo del modulo Python OS utilizzato per gestire i percorsi condivisi. os.path.realpath () in Python viene utilizzato per ottenere il percorso canonico del nome file specificato tramite rimuovendo tutti i collegamenti simbolici che si verificano nel percorso.
Sintassi: os.path.realpath(percorso) Parametro: percorso: un percorso simile oggetto che rappresenta il percorso del file system. Un oggetto simile a un percorso è un oggetto stringa o byte che rappresenta un percorso. Tipo restituito: questo metodo restituisce un valore stringa che rappresenta il percorso canonico. 

Crea un collegamento software o un collegamento simbolico

Su Unix o Linux, è possibile creare un collegamento software o un collegamento simbolico utilizzando il comando ln. Di seguito è riportata la sintassi per creare un collegamento simbolico sulla riga di comando:
$ ln -s {nome-file-origine} {nome-file-simbolico} 

Esempio 1

def realpath(self, spec, key): """ Risolvi e aggiorna la chiave del percorso nella specifica con la sua realpath, basato sulla directory di lavoro. """ se la chiave non è nelle specifiche: # non fare nulla per now return if not spec[key]: logger.warning( "cannot risolvere realpath di `%s ` come non è definito", key) return check = realpath(join(spec.get( DIR_LAVORO, ``), spec[chiave])) if check != spec[key]: spec[key] = check logger.warning( "realpath di `%s` risolto in `%s`, la specifica è stata aggiornata", chiave, controllo ) return che ck # Impostazione dei metodi relativi 

Esempio 2

def get_rp_stripper(strip_path): """ Funzione di ritorno allo strip ``realpath`` di `strip_path` dalla stringa Parametri ---------- strip_path: str percorso da rimuovere dall`inizio delle stringhe. Elaborato in ``strip_prefix`` da ``realpath(strip_path) + os.path.sep` `. Restituisce ------- stripper: funzione func tale che ``stripper(a_string)`` elimini ``strip_prefix`` da ``a_string`` se presente, altrimenti passa ``a_string`` non modificata """ return get_prefix_stripper(realpath(strip_path) + os.path.sep) 

Esempio 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) # Verifica che build_dir sia impostata sulla specifica in base al file temporaneo self.assertTrue(spec[`build_dir`].startswith( realpath(tempfile.gettempdir()))) # Inoltre è stato eliminato correttamente. self.assertFalse(exists(spec[`build_dir`] )) 

Esempio 4

def find_system_jdks(): """ Restituisce un insieme di JD valido directory K ricercando posizioni standard. """ basi = [ `/Library/Java/JavaVirtualMachines`, `/usr/lib/jvm`, `/usr/java`, `/usr/jdk/instances`, r`C:Program FilesJava` ] jdks = set() for 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 

Esempio 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): # Salta i nomi che iniziano con `.` if _to_skip(file_or_dir): continua # Visita ricorsivamente le directory e aggiungi i file se ricorsivo: 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) file di ritorno 

Esempio 6

def getSubdirs(path, baseNamesOnly=True, excludePythonModulesDirs=True): """Fornisce un elenco di sottodirectory per il percorso specificato"" " subdirs = [] prova: percorso = realpath(percorso) + sep per l`elemento in os.listdir (percorso): candidato = percorso + elemento if isdir(candidate): if excludePythonModulesDirs: modFile = candidato + sep + "__init__.py" se esiste(modFile): continua se baseNamesOnly: subdirs.append(item) else: subdirs.append (candidato) eccetto: pass return subdirs 

Esempio 7

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

Esempio 8

def getParameters(self): """Fornisce un dizionario con i parametri di ricerca""" parametri = {`term`: self.findCombo.currentText(), `case`: self.caseCheckBox.isChecked( ), `intero`: self.wordCheckBox.isChecked(), `regexp`: self.regexpCheckBox.isChecked()} if self.projectRButton.isChecked(): parameters[`in-project`] = True parameters[`in- open`] = parametri falsi[`in-dir`] = `` elif self.openFilesRButton.isChecked(): parametri[`in-project`] = F alse parameters[`in-opened`] = True parameters[`in-dir`] = `` else: parameters[`in-project`] = Falsi parametri[`in-opened`] = Falsi parametri[`in-dir `] = realpath( self.dirEditCombo.currentText().strip()) parametri[`file -filter`] = self.filterCombo.currentText().strip() parametri di ritorno 

Esempio 9

def _check_if_pyc(fname): """Restituisce True se l`estensione è . pyc, False se .py e Nessuno in caso contrario""" da imp import find_module da os.path import realpath, dirname, basename, splitext # Normalizza il percorso del file per find_module() filepath = realpath(fname) dirpath = dirname(filepath) module_name = splitext(basename(filepath))[0] # Convalida e recupera try: fileobj, fullpath, (_, _, pytype) = find_module(module_name, [dirpath]) eccetto ImportError : raise IOError("Impossibile trovare il file di configurazione. " "Percorso forse errato!: {0}.format(filepath)) return pytype, fileobj, fullpath 

Esempio 10

def get_planetoid_dataset(name, normalize_features=False, transform= Nessuno): percorso = osp.join(osp.dirname(osp.realpath(__file__)), `..`, `data`, name) dataset = Planetoid(percorso, nome) se la trasformazione non è None e normalize_features: dataset.transform = T.Compose([T.NormalizeFeatures(), transform]) elif normalize_features: dataset. transform = T.NormalizeFeatures() elif transform non è None: dataset.transform = transform return dataset 

Esempio 11

def _setup_logger(cls, log_file=None): formattatore = registrazione. 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 ehm) if log_file: file_handler = logging.FileHandler(realpath(log_file), mode="w" ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger 

Esempio 12

def bro_server(bro_file, interface="eth0", bro_path="/usr/local/ bro/bin/bro"): u""" Ë∑ëbroÊúçÂä°ËøõÁ®ã """ # Ëé∑ÂèñÁªùÂØπË∑ØÂæÑ bro_file = percorso.realpath(file_bro) http_file = "/usr/local/bro/share/bro/base/protocols/http/main.bro" bro_scripts = ` `.join([file_bro, 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 = "il cmd è: %s" % cmd logging.info(msg) # cambia pwd in /tmp tmp_dir = path.join(path.dirname(path.percorso reale(__file__)), `../../tmp/`) chdir(tmp_dir) risultato = r un(cmd) logging.info(result.__dict__) 

Esempio 13

def ProcessFlags(env, flags): for f in flags: if f: env.MergeFlags(str( f)) # fix relativo CPPPATH per i, p in enumerate(env.get("CPPPATH", [])): if isdir(p): env[`CPPPATH`][i] = realpath(p) # Annulla qualsiasi precedente definizione di nome, sia integrata che # fornita con un`opzione -D // Problema #191 undefines = [u for 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)) 

Esempio 14

def _get_settings_helper(self): main_dir = percorso.dirname(percorso.realpath(__file__)) main_dir = percorso.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 # apri il file predefinito e ottieni le informazioni sulla versione con open(default_filepath) come default_filestream : default_filesettings = yaml.load(default_filestream) # FIXME: non utilizzato 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) 

Esempio 15

def resolve_rpath(lib_path, rpaths ): """ Restituisce `lib_path` con il suo `@rpath` risolto Se `lib_path` non ha `@rpath` allora viene restituito così com`è. Se `lib_path` ha `@rpath` restituisce la prima combinazione `rpaths`/`lib_path` trovata. Se la libreria non può essere trovata in `rpaths`, viene stampato un avviso dettagliato e `lib_path` viene restituito così com`è. Parametri ---------- lib_path: str Il percorso di un file di libreria, che può iniziare o meno con `@rpath`. rpaths: sequenza di str Una sequenza di percorsi di ricerca, generalmente ottenuti da una chiamata a `get_rpaths`. Restituisce ------- lib_path: str A str con le librerie risolte realpath. """ se non lib_path.startswith(`@rpath/`): return lib_path lib_rpath = lib_path.split(`/`, 1)[1] for rpath in rpaths: rpath_lib = realpath(pjoin(rpath, lib_rpath)) if os.path.exists(rpath_lib): return rpath_lib warnings.warn( "Impossibile trovare { 0} sui percorsi: {1}.format( lib_path, ` `.join(realpath( path) per il percorso in rpaths), ) ) return lib_path 

Esempio 16

def wheel_libs(wheel_fname, filt_func=None): """ Restituisce l`analisi delle dipendenze della libreria con una ruota Python Utilizzare questa routine per un dump dell`albero delle dipendenze. Parametri ---------- wheel_fname: str Nome file di wheel filt_func: Nessuno o richiamabile, facoltativo Se Nessuno, controlla tutti i file per le dipendenze della libreria. Se richiamabile, accetta il nome del file come argomento, restituisce True se dobbiamo ispezionare il file, False in caso contrario. Restituisce ------- lib_dict: dizionario dict con (chiave, valore) coppie di (``libpath``, ``dependings_dict``). ``libpath`` è la libreria da cui dipende, rispetto al percorso root della ruota se all`interno dell`albero della ruota. ``dependings_dict`` è (chiave, valore) di (``depending_lib_path``, ``install_name``). Di nuovo, ``depending_lib_path`` è una libreria relativa al percorso root della ruota, se all`interno dell`albero della ruota. """ con TemporaryDirectory() come tmpdir: zip2dir(wheel_fname, tmpdir) lib_dict = tree_libs(tmpdir, filt_func) return stripped_lib_dict(lib_dict, realpath(tmpdir) + os.path.sep) 

Esempio 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="Mostra tutte le dipendenze , incluse le librerie di sistema"), Option("-d", "--dipendente", action="store_true", help="Mostra le librerie in base alle dipendenze")]) (opts, percorsi) = parser.parse_args() if len(percorsi) < 1: parser.print_help() sys.exit(1) multi = len(percorsi) > 1 per percorso nei percorsi: if multi: print(percorso + `:`) indent = ` ` else: indent = `` if isdir(percorso): lib_dict = tree_libs(percorso) lib_dict = stripped_lib_dict(lib_dict, realpath (getcwd()) + psep) e lse: lib_dict = wheel_libs(percorso) keys = ordinato(lib_dict) se non opts.all: keys = [chiave per la chiave in keys if filter_system_libs(key)] se non 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)) 

Esempio 18

def test_given_directory(): # Prova InGivenDirectory cwd = getcwd() con InGivenDirectory() come tmpdir: assert_equal( tmpdir, abspath(cwd)) assert_equal(tmpdir, abspath(getcwd())) con InGivenDirectory(MY_DIR) come tmpdir: assert_equal(tmpdir, MY_DIR) assert_equal(realpath(MY_DIR), realpath(abspath (getcwd()))) # Stavamo eliminando la directory Given! Controlla non così ora. assert_true(isfile(MY_PATH)) 

Esempio 19

def decideClean(workDir, architecture, aggressiveCleanup): """ Decide cosa eliminare, senza farlo effettivamente: - Trova tutti i collegamenti simbolici in "BUILD" - Trova tutte le directory in "BUILD" - Pianifica una directory per l`eliminazione se non ha un collegamento simbolico """ symlinksBuild = [os.readlink(x) for x in glob.glob("%s/ BUILD/*-latest*" % workDir)] # $WORK_DIR/TMP dovrebbe sempre essere ripulito. Ciò non accade solo # nel caso in cui si esaurisca lo spazio durante il disimballaggio. # $WORK_DIR//store può anche essere ripulito, perché # non abbiamo bisogno dei tarball effettivi dopo che sono stati creati. toDelete = ["%s/TMP" % workDir] se aggressivoCleanup: toDelete += ["%s/TARS/%s/store" % (workDir, architettura), "%s/SOURCES" % (workDir)] allBuildStuff = glob.glob("%s/BUILD/*" % workDir) toDelete += [x for x in allBuildStuff if not path.islink(x) and not basename(x) in symlinksBuild] installGlob ="%s/%s/ */" % (workDir, architettura) installedPackages = set([dirname(x) for x in glob.glob(installGlob)]) symlinksInstall = [] for x in installedPackages: symlinksInstall += [percorso.realpath(y) per y in glob.glob(x + "/latest*")] toDelete += [x per x in glob.glob(installGlob+ "*") se non path.islink(x) e non path.realpath(x) in symlinksInstall] toDelete = [x for x in toDelete if path.exists(x)] return toDelete 

Esempio 20

def _get_script_dir(follow_symlinks: bool = True ) -> Percorso: # Ottenere il percorso per i truststore è complicato a causa di sottili differenze su OS X, Linux e Windows se getattr(sys, "congelato", False): # py2exe, PyInstaller, cx_Freeze path = Path(sys.executable).absolute() else: path = Path(inspect.getabsfile (_get_script_dir)) if follow_symlinks: path = Path(realpath(percorso)) return path.parent 

Archivio

os.path.realpath() in Python viene utilizzato per ottenere il percorso canonico di un nome file specificato rimuovendo eventuali collegamenti simbolici trovati nel percorso .

Sintassi: os.path.percorso reale (percorso)

Parametro:
percorso : A oggetto simile a un percorso che rappresenta il percorso del file system.
Un oggetto simile a un percorso è un oggetto stringa o byte che rappresenta un percorso.

Tipo restituito: Questo metodo restituisce un valore stringa che rappresenta il percorso canonico.

Crea soft link o link simbolico
Su Unix o Linux, è possibile creare un soft link o un link simbolico usando il comando ln.¬†Seguente è la sintassi per creare un collegamento simbolico sulla riga di comando:

$ ln -s {nome-file-origine} {nome-file-simbolico} 

Esempio:

Esempio:

Nell`output sopra, " / home / ihritik / Desktop / file (scorciatoia) .txt " è un collegamento simbolico.

Codice: using os.path.realpath () metodo per ottenere i collegamenti simbolici del percorso canonico e della risoluzione.

< tr>

# Programma Python per spiegare os.path.realpath () metodo

  
# importazione del modulo os

import os

 
# Percorso

percorso = "/ home / ihritik / Desktop / file (scorciatoia) .txt"

 

 
# Ottieni il percorso canonico
# del percorso specificato
# rimuovendo eventuali collegamenti simbolici
# incontrato in arrivo

percorso_reale = os.path.realpath (percorso)

 
# Stampa il percorso canonico

print ( percorso_reale)

 

 
# Percorso

percorso = "/../../ GeeksForGeeks / sample.py"

 

 
# Ottieni il percorso canonico
# del percorso specificato
# eliminazione di eventuali s link simbolici
# incontrato nel percorso

real_path = os.path.realpath (percorso)

 
# Stampa il percorso canonico

print (percorso_reale)

 

 
# Percorso

percorso = "file.txt"

  

  
# Ottieni il percorso canonico
# percorso specificato
# rimuovi eventuali collegamenti simbolici
# soddisfatte in arrivo

real_path = os . percorso.percorso reale (percorso)

 
# Stampa il percorso canonico

print (percorso_reale)

 

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

 

 
# Percorso

percorso = "file.txt"

 
# Ottieni il percorso canonico
# del percorso specificato
# eliminazione di eventuali link simbolici
# incontrato nel percorso

real_path = os.path.realpath (percorso)

  
# Stampa il percorso canonico

print ( percorso_reale)

Esci:

/ home / ihritik / Documenti / file (originale) .txt /GeeksForGeeks/sample.py /home/ihritik/file.txt /home/ihritik/Downloads /file.txt 

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