python中的绝对路径和相对路径,python绝对路径和相对路径的区别
python绝对路径和相对路径怎么写
python写绝对路径和相对路径的方法:
绝对路径是指从系统盘一直到文件所在位置的路径,例如:“D:xmtitleprojectpycnvideo.txt”
相对路径是指相对于.py文件的路径,例如:“pycnvideo.txt”
示例如下:
相对地址
file = open("ax.txt", 'r')
a = file.read()
print("a =", a)
file.close()
绝对地址
file2 = open("C:UserszhoubDesktop项目ax.txt", 'r')
b = file2.read()
print("b =", b)
file2.close()
执行结果如下:
想了解更多python知识,请观看零基础入门Python项目实战视频!!
Python3 & 如何在Python中写文件路径
Python中文件路径共分为两种:绝对路径和相对路径
1、绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
2、 相对路径是以当前文件为基准进行一级级目录指向被引用的资源文件。
其中大小写不影响windows定位到文件
python 文件路径书写方式有两种:
方法一:使用转义字符
filePath = 'E:\Temp\test'
方法二:使用r声明字符串
filePath = r'E:\Temp\test'
上述写法中"\ “为字符串中的特殊字符,加上r后变为原始字符串,则不会对字符串中的”\t"、"\r" 进行字符串转义。
Python怎样得到资源文件的绝对路径
路径有两种,相对路径和绝对路径。 对于Unix-Like系统来说,绝对路径就是以/开头的路径。 相对路径就是不以/开头的路径。
其实,操作系统中实际只有一种路径,那就是绝对路径。 相对路径,只是程序自己帮我们修改为绝对路径了。
操作系统的程序运行器利用环境变量,为我们把相对路径生成为绝对路径。getcwd()函数用于得到当前进程的当前工作路径。也就是相对路径的起始点。
在Python中,可以使用os.chdir函数切换当前工作路径。
当前工作路径,是程序执行时所在的路径。 我们在哪个目录下执行程序,当前路径就是哪一个目录。
我们常常需要在python中执行一些源码目录下的文件。如,我们可能需要用eval动态执行一个python源文件。或者copy一些配置文件到目标系统的路径下。此时,我们无法知道这些文件的绝对路径,因为我们不能预知用户会把我们的程序安装到哪一个目录下。
我们也不能依赖于当前工作路径。因为用户很可能不在我们的源码目录下执行我们的程序。
那么,此时我们如何得到源码目录下文件的绝对路径呢?
我是这样做的:
ABSPATH=None
if __name__ == '__main__':
ABSPATH=os.path.abspath(sys.argv[0])
ABSPATH=os.path.dirname(ABSPATH)+"/"
print ABSPATH
python中的“绝对路径”和“相对路径”如何理解?
相对路径是相对脚本文件来的。
比如脚本在C:/python目录下,相同目录下有一个文件叫test.txt
那么绝对路径就是 C:/python/test.txt,相对路径就是test.txt
使用脚本 open('C:/python/test.txt','r') 和 open('test.txt','r')效果都是一样的
我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.
搞清了这些,我们可以使用相对路径来创建文件,例如:
File file = new File(“a.txt”);
File.createNewFile();
假设jvm是在”D:\”下启动的,那么a.txt就会生成在D:\a.txt;
此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”.\”代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目录完整路径:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:\
最后要说说在eclipse中的情况:
Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog.那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog.”
Python 中的import 机制
解释器 在执行语句时,遵循作用域原则。因为这和作用域有关系, 如果在顶层导入模块,此时它的作用域是全局的;如果在函数内部导入了模块,那它的作用域只是局部的 ,不能被其它函数使用。如果其它函数也要用到这个模块,还需要再次导入比较麻烦。
在用import语句导入模块时最好按照这样的顺序:
绝对路径 就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
相对路径 就是以当前文件为基准进行一级级目录指向被引用的资源文件。
以下是常用的表示当前目录和当前目录的父级目录的标识符
形如from moduleB import ClassB语句,根据Python内部import机制,执行细分步骤:
总结:from moduleB import ClassB有两个过程,先from module,后import ClassB。
当然将moduleA.py语句 from moduleB import ClassB改为:import moduleB,将在第二次执行moduleB.py语句from moduleA import ClassA时报错:ImportError: cannot import name ‘classA’
在一个文件下同时有 init .py文件、和其他模块文件时,该文件夹即看作一个包(package)。包的导入 和模块导入基本一致,只是导入包时,会执行这个 init .py,而不是模块中的语句。
而且,如果只是单纯地导入包【形如:import xxx】,而包的 init .py中有没有明确地的其他初始化操作,则:此包下的模块 是不会被自动导入的。当然该包是会成功导入的,并将包名称放入当前.py的Local命名空间中。
参考文章:
Python中import机制
Python 3.x可能是史上最详解的【导入(import)】
在Python中以绝对路径或者相对路径导入文件的方法
Python的模块引用和查找路径