Python | os.path.realpath() yöntemi

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Python OS modülü, işletim sistemiyle etkileşim için işlevler sağlar. İşletim sistemi standart Python hizmet modülleriyle birlikte gelir. Bu modül, işletim sistemine özgü işlevleri kullanmak için taşınabilir bir yol sağlar. os.path modülü, paylaşılan yolları yönetmek için kullanılan Python OS modülünün bir alt modülüdür. Python`da os.path.realpath () belirtilen dosya adının kurallı yolunu şu şekilde almak için kullanılır: yolda meydana gelen herhangi bir sembolik bağın kaldırılması.
Sözdizimi: os.path.realpath(path) Parametre: path: Bir yol benzeri dosya sistemi yolunu temsil eden nesne. Yol benzeri bir nesne, bir yolu temsil eden bir dize veya bayt nesnesidir. Dönüş Türü: Bu yöntem, kurallı yolu temsil eden bir dize değeri döndürür. 

Yazılımsal bağlantı veya sembolik bağlantı oluştur

Unix veya Linux`ta, ln komutu kullanılarak bir yumuşak bağlantı veya sembolik bağlantı oluşturulabilir. Komut satırında sembolik bir bağlantı oluşturmak için sözdizimi aşağıdadır:
$ ln -s {kaynak-dosyaadı} {sembolik-dosyaadı} 

Örnek 1

def realpath(self, spec, key): """ Spesifikasyondaki yol anahtarını, realpath, çalışma dizinini temel alır. """ anahtar özellikte değilse: # için hiçbir şey yapmayın şimdi spec[key] değilse geri dön: logger.warning( "`%s`nin gerçek yolunu çözemiyor ` tanımlanmadığı için", anahtar) dönüş kontrolü = realpath(join(spec.get( WORKING_DIR, ``), spec[anahtar])) eğer kontrol edilirse != spec[key]: spec[key] = logger.warning`i kontrol edin( "realpath`i `%s` olarak çözümlendi, özellik güncellendi", anahtar, kontrol ) dönüş che ck # Kurulumla ilgili yöntemler 

Örnek 2

def get_rp_stripper(strip_path): """ ``realpath`` `strip_path` öğesinin dizeden Parametreler ---------- strip_path: str dizelerin başından itibaren şerit yolu. ``realpath(strip_path) + os.path.sep` tarafından ``strip_prefix`` olarak işlendi `. ------- stripper döndürür: `` striptizci(a_string)``, varsa ``strip_prefix`` öğesini ``a_string``den çıkaracak, aksi takdirde ``a_string`` değiştirilmemiş """ dönüşünü geçirecek şekilde func işlevi get_prefix_stripper(realpath(strip_path) + os.path.sep) 

Örnek 3

def test_toolchain_standard_not_implemented(self): spec = Spec() self.assertRaises(NotImplementedError): self.toolchain(spec) with self.assertRaises(NotImplementedError): self.toolchain.assemble(spec) ile self.assertRaises(NotImplementedError): self.toolchain.link(spec) # build_dir`in tempfile self.assertTrue(spec[`build_dir`].startswith( realpath(tempfile.gettempdir()))) # Ayrıca düzgün bir şekilde silinmiş. self.assertFalse(exists(spec[`build_dir`]) )) 

Örnek 4

def find_system_jdks(): """ Geçerli bir JD kümesi döndürür Standart konumları arayarak K dizinleri. """ bases = [ `/Library/Java/JavaVirtualMachines`, `/usr/lib/jvm`, `/usr/java`, `/usr/jdk/instances`, r`C:Program FilesJava` ] jdks = bazlar için set(): isdir(base): os.listdir(base) içindeki n için: jdk = join(base, n) mac_jdk = join(jdk, `Contents`, `Home`) if isdir(mac_jdk) ): jdk = mac_jdk is_valid_jdk(jdk): jdks.add(realpath(jdk)) dönüş jdks 

Örnek 5

def _expand_dirs_to_files(files_or_dirs, recursive=False): files = [] files_or_dirs = _ensure_list(files_or_dirs) file_or_dir için files_or_dirs = op.or_dirs = op.or_dirs "https://python.engineering/python-os-path-realpath-method/">realpath(file_or_dir) ise op.isdir(file_or_dir): # `.` ile başlayan dizin adlarını atla _to_skip(file_or_dir) ise: devam # Dizinleri tekrar tekrar ziyaret edin ve dosyaları ekleyin. eğer özyinelemeli ise: files.extend(_expand_dirs_to_files([op.join(file_or_dir, file) for os.listdir(file_or_dir)], recursive=recursive) ) else: files.extend([op.join(file_or_dir, file) for os.listdir(file_or_dir)]) elif `*` file_or_dir: files.extend(glob.glob(file_or_dir)) else: files.append (file_or_dir) dönüş dosyaları 

Örnek 6

def getSubdirs(path, baseNamesOnly=True, externalPythonModulesDirs=True): """Verilen yol için alt dizinlerin bir listesini sağlar"" " subdirs = [] try: path = realpath(path) + os.listdir`deki öğe için sep (yol): aday = yol + öğe ise isdir(aday): hariç tutulursaPythonModulesDirs: modFile = aday + sep + "__init__.py" varsa(modFile): devam ederse baseNamesOnly: subdirs.append(item) başka: subdirs.append (aday) hariç: dönüş alt dizinlerini iletin 

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

Örnek 8

def getParameters(self): """Arama parametreleriyle bir sözlük sağlar""" parametreler = {`term`: self.findCombo.currentText(), `case`: self.caseCheckBox.isChecked( ), `bütün`: self.wordCheckBox.isChecked(), `regexp`: self.regexpCheckBox.isChecked()} if self.projectRButton.isChecked(): parametreler[`in-proje`] = Gerçek parametreler[`in- open`] = Yanlış parametreler[`in-dir`] = `` elif self.openFilesRButton.isChecked(): parametreler[`in-project`] = F alse parametreleri[`in-opened`] = Gerçek parametreler[`in-dir`] = `` else: parametreler[`in-project`] = Yanlış parametreler[`in-in-dir`] = Yanlış parametreler[`in-dir `] = realpath( self.dirEditCombo.currentText().strip()) parametreleri[`file -filter`] = self.filterCombo.currentText().strip() dönüş parametreleri 

Örnek 9

def _check_if_pyc(fname): """Uzantı . pyc, .py ise False ve aksi takdirde None""" imp`dan import find_module os.path`den import realpath a>, dirname, basename, splitext # find_module() dosya yolu için dosya yolunu normalleştirin = realpath(fname) dirpath = dirname(filepath) module_name = splitext(basename(filepath))[0] # Doğrulayın ve deneyin: fileobj, fullpath, (_, _, pytype) = find_module(module_name, [dirpath]) ImportError hariç : yükselt IOError("Yapılandırma dosyası bulunamıyor. " "Yol yanlış olabilir!: {0}".format(filepath)) return pytype, fileobj, fullpath 

Örnek 10

def get_planetoid_dataset(name, normalize_features=False, transform= Yok): yol = osp.join(osp.dirname(osp.realpath(__file__)), `..`, `data`, name) dataset = Planetoid(path, name) eğer transform None değilse ve normalize_features: dataset.transform = T.Compose([T.NormalizeFeatures(), transform]) elif normalize_features: dataset. transform = T.NormalizeFeatures() elif dönüşümü Yok değil: dataset.transform = transform dönüş veri kümesi 

Örnek 11

def _setup_logger(cls, log_file=Yok): formatter = günlüğe kaydetme. 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(biçimlendirici) günlükçü = 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) dönüş günlüğü 

Örnek 12

def bro_server(bro_file, interface="eth0", bro_path="/usr/local/ bro/bin/bro"): u""" Ë∑ëbroÊúçÂä°ËøõÁ®ã """ # Ëé∑ÂèñÁªùÂØπË∑ØÂæÑ bro_file = yol.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 = "cmd: %s" % cmd logging.info(msg) # pwd`yi /tmp olarak değiştirin tmp_dir = path.join(path.dirname(path.realpath(__file__)), `../../tmp/`) chdir(tmp_dir) sonuç = r un(cmd) logging.info(result.__dict__) 

Örnek 13

def ProcessFlags(env, flags): f in flags: if f: env.MergeFlags(str( f)) # enumerate(env.get("CPPPATH", [])`da i, p için göreli CPPPATH`i düzeltin): if isdir(p): env[`CPPPATH`][i] = realpath(p) # Yerleşik veya # -D seçeneğiyle sağlanan herhangi bir önceki ad tanımını iptal edin // Sayı #191 undefines = [u for u in env.get("CCFLAGS", []) if u.startswith("-U")] undefines ise: undef in undefines için: env[`CCFLAGS`].remove(undef) env. Append(_CPPDEFFLAGS=" %s" % " ".join(undefines)) 

Örnek 14

def _get_settings_helper(self): main_dir = path.dirname(path.realpath(__file__)) main_dir = yol.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() eğer args.settings_path: user_filepath = args.settings_path # varsayılan dosyayı açın ve sürüm bilgilerini open(default_filepath) ile default_filestream olarak alın : default_filesettings = yaml.load(default_filestream) # FIXME: kullanılmıyor 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) 

Örnek 15

defsolve_rpath(lib_path, rpaths) ): """ `@rpath` çözümlenmiş olarak `lib_path` döndür `lib_path` `@rpath` içermiyorsa, olduğu gibi döndürülür. `lib_path`, `@rpath` içeriyorsa, bulunan ilk `rpaths`/`lib_path` kombinasyonunu döndürür. Kitaplık `rpaths` içinde bulunamazsa, ayrıntılı bir uyarı yazdırılır ve `lib_path` olduğu gibi döndürülür. Parametreler ---------- lib_path: str `@rpath` ile başlayan veya başlamayan bir kitaplık dosyasının yolu. rpaths: str dizisi Genellikle bir `get_rpaths` çağrısından alınan bir dizi arama yolu. Döndürür ------- lib_path: str realpath çözümlenmiş kitaplıklara sahip bir str. """ lib_path.startswith(`@rpath/` değilse): rpaths içindeki rpath için lib_path lib_rpath = lib_path.split(`/`, 1)[1] döndür: rpath_lib = realpath(pjoin(rpath, lib_rpath)) eğer os.path.exists(rpath_lib): return rpath_lib Warnings.warn( "Bulamadı { 0} yollarda: {1}".format( lib_path, ` `.join(realpath( path) rpaths içindeki yol için), ) ) return lib_path 

Örnek 16

def wheel_libs(wheel_fname, filt_func=None): """ Bir Python tekerleği ile kitaplık bağımlılıklarının analizini döndür Bağımlılık ağacının dökümü için bu yordamı kullanın. Parametreler ---------- wheel_fname: str Wheel filt_func dosya adı: Yok veya çağrılabilir, isteğe bağlı Yok ise, tüm dosyaları kitaplık bağımlılıkları açısından inceleyin. Çağrılabilirse, dosya adını argüman olarak kabul eder, dosyayı incelememiz gerekirse True, aksi takdirde False döndürür. ------- lib_dict: (anahtar, değer) çiftleriyle (``libpath``, ``dependings_dict``) dict sözlüğü döndürür. ``libpath``, tekerlek ağacı içindeyse tekerlek kök yoluna göre bağımlı olan kitaplıktır. ``dependings_dict`` (`depending_lib_path``, ``install_name``) (anahtar, değer) `dir. Yine, ``depending_lib_path``, tekerlek ağacı içindeyse, tekerlek kök yoluna göre kitaplıktır. TemporaryDirectory() ile tmpdir olarak """: zip2dir(wheel_fname, tmpdir) lib_dict = tree_libs(tmpdir, filt_func) return stripped_lib_dict(lib_dict, realpath(tmpdir) + os.path.sep) 

Örnek 17

def main(): ayrıştırıcı = OptionParser( use="%s WHEEL_OR_PATH_TO_ANALYZE " % sys.argv[0] + __doc__, version="%prog " + __version__) parser.add_options([ Option("-a", "--all", action="store_true", help="Tüm bağımlılıkları göster) , sistem kütüphaneleri dahil")), Option("-d", "--bağımlı", action="store_true", help="Bağımlılıklara bağlı kitaplıkları göster")]) (seçenekler, yollar) = parser.parse_args() ise len(paths) < 1: parser.print_help() sys.exit(1) multi = len(paths) > 1 yollardaki yol için: 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) eğer opts.all değilse: keyler = [key in key for key if filter_system_libs(key)] opts değilse.bağımlı: if len(keys): print(indent + (` ` + indent).join(keys)) devam i2 = girinti + ` ` anahtarlar için: print(indent + key + `:`) libs = lib_dict[key] if len(libs): print(i2 + (` ` + i2).join(libs)) 

Örnek 18

def test_given_directory(): # InGivenDirectory cwd = getcwd()`yi InGivenDirectory() ile tmpdir olarak test edin: assert_equal( tmpdir, abspath(cwd)) assert_equal(tmpdir, abspath(getcwd())) InGivenDirectory(MY_DIR) ile tmpdir olarak: assert_equal(tmpdir, MY_DIR) assert_equal(realpath(MY_DIR), realpath(abspath (getcwd()))) # Verilen dizini siliyorduk! Şimdi değil kontrol edin. Assert_true(isfile(MY_PATH)) 

Örnek 19

def kararClean(workDir, mimari, agresifCleanup): """ Neyin silineceğine karar verir, bunu gerçekten yapmadan: - Tüm öğeleri bulun "BUILD" içindeki sembolik bağlantılar - "BUILD" içindeki tüm dizinleri bulun - """ sembolik bağlantısı yoksa bir dizini silinmek üzere programlayın symlinksBuild = [os.readlink(x) for x in glob.glob("%s/ BUILD/*-latest*" % workDir)] # $WORK_DIR/TMP her zaman temizlenmelidir. Bu sadece, paketi açarken yerimizin bitmesi durumunda # olmaz. # $WORK_DIR//store da temizlenebilir, çünkü # oluşturulduktan sonra gerçek tarball`lara ihtiyacımız yok. toDelete = ["%s/TMP" % workDir] agresifCleanup: toDelete += ["%s/TARS/%s/store" % (workDir, mimari), "%s/SOURCES" % (workDir)] allBuildStuff = glob.glob("%s/BUILD/*" % workDir) toDelete += symlinksBuild`de path.islink(x) değilse ve basename(x) değilse allBuildStuff içindeki x için x] installGlob ="%s/%s/ */" % (workDir, mimari)installPackages = set(glob.glob(installGlob)`da x için [dirname(x)]) symlinksInstall = [] kuruluPaketlerde x için: symlinksInstall += [yol.realpath(y) için glob.glob(x + "/latest*")] toDelete += [x için x glob.glob(installGlob+ "*") içinde path.islink(x) değilse ve path değilse.realpath(x) symlinksInstall] toDelete = [x için x toDelete if path.exists(x)] geri dön toDelete 

Örnek 20

def _get_script_dir(follow_symlinks: bool = True ) -> Yol: # Güven mağazalarına giden yolu bulmak zor OS X, Linux ve Windows`taki küçük farklılıklar nedeniyle if getattr(sys, "frozen", False): # py2exe, PyInstaller, cx_Freeze path = Path(sys.executable).absolute() başka: path = Path(inspect.getabsfile (_get_script_dir)) if Follow_symlinks: path = Path(realpath(path)) return path.parent 

Arşiv

os.path.realpath() , yolda bulunan tüm sembolik bağlantıları kaldırarak belirtilen bir dosya adının kurallı yolunu almak için kullanılır.

Sözdizimi: os.path.realpath (yol)

Parametre:
yol : A dosya sistemi yolunu temsil eden yola benzer nesne.
Yol benzeri bir nesne, bir yolu temsil eden bir dize veya bayt nesnesidir.

Dönüş Türü: Bu yöntem, kurallı yolu temsil eden bir dize değeri döndürür.

Yazılımsal bağlantı veya sembolik bağlantı oluşturun
Unix veya Linux`ta, ln komutu kullanılarak bir yumuşak bağlantı veya sembolik bağlantı oluşturulabilir.¬†Aşağıdaki komut satırında sembolik bir bağlantı oluşturmak için kullanılan sözdizimidir:

$ ln -s {kaynak-dosyaadı} {sembolik dosyaadı} 

Örnek:

Örnek:

Yukarıdaki çıktıda, " / ana sayfa / ihritik / Masaüstü / dosya (kısayol) .txt " sembolik bir bağlantıdır.

Kod: os.path kullanarak.realpath () kurallı yol ve çözünürlük sembolik bağları alma yöntemi.

< tr>

# os.path`ı açıklamak için Python programı.realpath () yöntemi

  
# işletim sistemi modülünün içe aktarımı

içe aktarma işletim sistemi

 
# Yol

yol = "/ ana sayfa / ihritik / Masaüstü / dosya (kısayol) .txt"

 

 
# Kurallı yolu alın
Belirtilen yolun # numarası
# sembolik bağları kaldırarak
# yolda karşılaştı

real_path = os.path.realpath (yol)

 
# Kurallı yolu yazdır

print ( real_path)

 

 
# Path

< kod sınıfı = "düz"> yol = "/../../ GeeksForGeeks / sample.py"

 

 
# Kurallı yolu alın
Belirtilen yolun #
# herhangi bir s`nin ortadan kaldırılması sembolik bağlantılar
# yolda buluştu

real_path = os.path.realpath (yol)

 
# Kurallı yolu yazdır

yazdır (gerçek_yol)

 

 
# Path

path = "file.txt"

  

  
# Kurallı yolu alın
# belirtilen yol
# sembolik bağları kaldırın
# met yolda

real_path = os . yol.realpath (yol)

 
# Kurallı yolu yazdır

yazdır (real_path)

 

os.chdir ( " / ana sayfa / ihritik / İndirilenler / " )

 

 
# Yol

yol = "file.txt"

 
# Kurallı yolu alın
Belirtilen yolun # numarası
# sembolik bağların ortadan kaldırılması
# yolda buluştu

real_path = os.path.realpath (yol)

  
# Kurallı yolu yazdırın

print ( real_path)

Çıkış:

/ ana sayfa / ihritik / Belgeler / dosya (orijinal) .txt /GeeksForGeeks/sample.py /home/ihritik/file.txt /home/ihritik/Downloads /file.txt 

Bağlantı: https: /¬†/docs.python.org/3/library/os.path.html