os.path.abs()与os.path.realpath()的一点区别

相同点

1. 两者都是返回绝对路径,如果参数path为空,则返回当前文件所在目录的绝对路径

当前py文件所在的目录是revise

print(os.path.abspath(""))
print(os.path.realpath(""))

运行结果:
D:\python_workshop\python6\revise
D:\python_workshop\python6\revise

2. 如果给一个不存在的文件名作为相对路径的path,会将当前所在目录和文件名拼接起来,返回拼接后的绝对路径

当前目录下并无"apple.txt",这个文件是不存在的。 注意是文件名,不是文件实体,这一点很重要, 这两个方法的作用是对给定文件名前加上当前工作目录的绝对路径,至于你给定的文件名对应文件是否真的存在并不关心(因为你有可能是想要创建文件呢)

print(os.path.abspath("apple.txt"))
print(os.path.realpath("apple.txt"))

运行结果:
D:\python_workshop\python6\revise\apple.txt
D:\python_workshop\python6\revise\apple.txt

不同点

os.path.abspath()返回绝对路径,但不处理符号链接(注意linux中的符号链接不同于windows中的快捷方式)

os.path.realpath()先处理路径中的符号链接,再返回绝对路径

$ ls -l
total 0
-rw-rw-r-- 1 guest guest 0 Jun 16 08:36 a
lrwxrwxrwx 1 guest guest 1 Jun 16 08:36 b -> a

$ python
Python 2.7.11 (default, Dec 15 2015, 16:46:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> from os.path import abspath, realpath

>>> abspath(‘b‘)
‘/home/guest/play/paths/b‘

>>> realpath(‘b‘)
‘/home/guest/play/paths/a‘

参考文章

https://stackoverflow.com/questions/37863476/why-would-one-use-both-os-path-abspath-and-os-path-realpath/37863619#37863619

https://segmentfault.com/q/1010000014420477?utm_source=index-hottest

原文地址:https://www.cnblogs.com/cnhkzyy/p/9271462.html

时间: 2024-08-29 22:11:27

os.path.abs()与os.path.realpath()的一点区别的相关文章

Python:关于os.path.isdir,os.path.exists,os.walk无法识别“~/" HOME目录的问题。

在编写Python脚本的时候,我发现,os.path.isdir,os.path.exists,os.walk 根本无法识别 ‘~/‘ 表示的HOME目录.例如: Python 2.7.12 (default, Jul 18 2016, 10:55:51) [GCC 6.1.1 20160621 (Red Hat 6.1.1-3)] on linux2 Type "help", "copyright", "credits" or "li

Python os.path.dirname(__file__) os.path.join(str,str)

Python os.path.dirname(__file__) Python os.path.join(str,str) (1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:\pythonSrc\test\test.py 那么将输出 d:\pythonSrc\test (2).当"print os.path.dirname(__file__)"所在脚本

IDEA里的Keymap(Default、Default for GNOME、Default for KDE、Default for XWin、Eclipse、Eclipse(Mac OS X)、Emacs、JBuilder、Mac OS X、Mac OS X 10.5+、NetBeans、Visual Studio)(图文详解)

不多说,直接上干货! 1.File  ->  Settings 2. 以下是自带的 以上是什么意思呢? 答:是IDEA默认安装了很多的预设风格. 分别有: Default.Default for GNOME.Default for KDE.Default for XWin.Eclipse.Eclipse(Mac OS X).Emacs.JBuilder.Mac OS X.Mac OS X 10.5+.NetBeans.Visual Studio Intellij Idea提供了更丰富的快捷键,提

安装vmware-tools遇the path "" is not valid path to the gcc binary和the path "" is not a valid path to the 3.10.0-327.e17.x86_64 kernel headers问题解决

#./vmware-install.pl踩点: 1.the path "" is not valid path to the gcc binary 2.the path "" is not a valid path to the 3.10.0-327.e17.x86_64 kernel headers 2.原因分析 Linux操作系统上gcc没有安装. Linux操作系统上uek kernel没有安装. 3.处理方法 # yum install gcc* //加载编

【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置

在 Mac OS X 中使用 zsh,环境变量 PATH 一不小心就会变得很紊乱,表现为自己设置的路径总是被放到系统路径之后,部分路径还会有重复.这是我们不太了解 zsh 启动时加载文件的顺序和 Mac OS X 的 shell 类型导致的. zsh 启动过程中会依次读取以下文件: /etc/zshenv $ZDOTDIR/.zshenv($ZDOTDIR 未设置时默认为 $HOME) 如果是 login shell,读取 /etc/zprofile, $ZDOTDIR/.zprofile 如果

python split(),os.path.split()和os.path.splitext()函数用法

# -*- coding:utf-8 -*- """ @author:lei """ import os #os.path.join() 将分离的部分合成一个整体 filename=os.path.join('/home/ubuntu/python_coding','split_func') print filename #输出为:/home/ubuntu/python_coding/split_func #os.path.splitext()将

大数据平台一键安装OS【定制化OS镜像制作】

 定制化 大数据平台一键安装OS 大数据平台一键安装OS系列 大数据平台一键安装OS[搭建脚本篇] 定制化OS镜像制作 1.操作环境 操作环境:VMware Workstarion 9 and vSphere client 系统:CentOS -6.8-x86_64 工具:gconf-editor anaconda repodata createrepo mkisofs rsync 2.主要思路 定制化是通过kickstart脚本来实现的,linux系统安装完毕后在root目录下会生成anaco

An update on OS X Code Signing(OS X代码签名)

There has recently been updates to the OS X code signing process. These updates also affect Qt applications signed for distribution, both on and outside the App Store. OS X 10.9 Mavericks introduced version 2 signatures. As of OS X 10.9.5 and 10.10 Y

如何让你的安卓手机瞬间变Firefox os 畅玩firefox os 应用

Firefox os 手机迟迟不能在国内大面积上市,现在能买到的Firefox os手机国内就一款Firefox os ZET OPEN C ,但这款手机配置确实还不如人意,价格方面也不实惠,对于我们火狐os爱好者来说真的是一种煎熬的等待与选择,但今天我想告诉你其Firefox os 离我们并不远了,今天我就以图文的方式教大家如何在我们已有的android 手机设备上玩firefox os应用!!! 首先我们去手机里的任意安卓应用市场上下载Firefox os浏览器并安装! 下载 安装并打开 点