相同点
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://segmentfault.com/q/1010000014420477?utm_source=index-hottest
原文地址:https://www.cnblogs.com/cnhkzyy/p/9271462.html
时间: 2024-11-08 12:36:42