Python中的路径的写法
windows的路径可以接受“/”“\”,但是由于“\”在python中是作为转义符使用,所以在python中若想路径中使用“\”时,要写成“\\”。
python路径写法
Python中使用路径的时写法:
D:\\testA\\MyTest 转义的方式。表示这里\\是一个普通\字符,由于反斜杠 ‘\’ 要用作转义符, 所以如果要使用反斜杠表示路径,则必须使用双反斜杠。
D:/testA/MyTest 直接用正斜杠表示路径。与linux一样,没有转义的误解。
r’D:/testA/MyTest’ r的全称是raw string,即原始字符串常量,可以让字符保持原来的意思。
但是如果写成了D:\testA\MyTest, 那就错误了,需要使用转义的方式消除歧义,应写成D:\\testA\\MyTest。
【正斜杠,又称左斜杠,符号是“/”;反斜杠,也称右斜杠,符号是“\”。
在Unix/Linux中,路径的分隔采用正斜杠“/”,比如"/demo/test";而在Windows中,正反斜杠二者皆可表示路径,通常看到是用反斜杠“\”,比如D:\testA\MyTest或D:/testA/MyTest。】
关于文件,它有两个关键属性,分别是“文件名”和“路径”。其中,文件名指的是为每个文件设定的名称,而路径则用来指明文件在计算机上的位置。例如, D:\demo\exercise\ projects.docx,也就是说,位于 D 盘下 demo 文件夹中 exercise 子文件夹下有一个文件名为 projects.docx(句点之后的部分称为文件的“扩展名”,它指出了文件的类型)。
Windows系统中,盘符:\ 是根文件夹,如 D:\,也称为 D: 盘。在 OS X 和 Linux 中,根文件夹是 /。
绝对路径:总是从根文件夹开始,Windows系统中以盘符(C:、D:)作为根文件夹,而 OS X 或者 Linux 系统中以 / 作为根文件夹。
相对路径:指的是文件相对于当前工作目录所在的位置。例如,当前工作目录为 D:/testA/MyTest,若文件 demo.txt 就位于这个MyTest文件夹下,则 demo.txt 的相对路径表示为 "./demo.txt"(其中 ./ 就表示当前所在目录)。
import os
path1=os.path.abspath('.') #表示当前所处的文件夹的绝对路径
path2=os.path.abspath('..') #表示当前所处的文件夹上一级文件夹的绝对路径
import模块时路径的写法
import不同层级目录中的模块
有一个文件夹/demo/test, 里面有个模块叫myB.py, 我怎么把它import到程序里?
方法一:
import sys;
sys.path.append("/demo/test/ ")
import myB
方法二(按包的方式使用):
import demo.test.myB
方法三(按包的方式使用):
from demo.test.myB import *
附录、Python中用户自定义包(package)
Python中,早期一个包(package)最基本的要求是包含一个名为__init__.py的空文件,这个文件告诉Python解释器该文件夹是一个包。特别提示:较新的Python版本中(从Python 3.3开始),一个包不需要__init__.py的文件,实际上就是一个目录结构。从用户使用的角度来看,既可以使用普通的包结构(即每个包目录都包含__init__.py文件),也可以使用命名空间包结构(即多个目录组成一个包,每个目录都可能不包含__init__.py文件),使用方式都是一样的。
在Python中,包(package)是一种用于组织和管理模块的形式,其中可以包含其他模块文件和子包。例如:
在其他地方导入该包和模块的示例代码如下:
python
# 导入整个包
import my_package
# 导入包中的模块
from my_package import module1
这样,就可以使用module1和module3模块中的函数、类或变量了。
要使用一个包中的模块,可以使用相对导入或绝对导入的方式进行导入。相对导入使用点号(.)表示当前包的位置,而绝对导入使用包的完整路径。
在module1.py中,如果想导入同级目录下的module2.py,可以使用相对导入:
from . import module2
在module3.py中,如果想导入上一级目录中的module1.py,可以使用两个点号(..):
from .. import module1
相对导入可以方便地在包内部引用其他模块,但无法在独立的脚本文件中使用。
绝对导入:
绝对导入使用包的完整路径来导入模块,可以在独立的脚本文件中使用。
在独立脚本文件中,如果要导入my_package包中的module1.py,可以使用绝对导入:
from my_package import module1
绝对导入需要提供完整的包路径,可以在任何地方使用,但相对导入更具有包内部的局限性。
你想在独立的脚本文件中使用自定义包中的函数、类或变量,你需要将自定义包放在Python的模块搜索路径中的一个位置。换句话说,要想使用绝对导入,需要将自定义包放在Python的模块搜索路径中的一个位置。
你有几种选项来放置自定义包:
☆ 将自定义包直接放置在你运行脚本文件所在的目录:
如果你的独立脚本文件和自定义包位于同一个目录,Python会自动找到并导入包中的内容。
☆ 设置PYTHONPATH环境变量:
你可以将自定义包所在的路径添加到PYTHONPATH环境变量中。这样,Python就能找到并导入你的自定义包。
☆ 使用sys.path.append()方法添加搜索路径:
在你的独立脚本文件中,你可以使用sys.path.append()方法将自定义包所在的路径添加到Python的模块搜索路径中。这样可以临时地将包添加到搜索路径中,以便导入其中的内容。示例代码如下:
import sys
sys.path.append('/path/to/your/custom_package')
from custom_package import module1, module2
请注意,以上方法中,将自定义包放置在当前工作目录或添加到PYTHONPATH环境变量或使用sys.path.append()都会使得Python能够找到并导入你的包中的内容。选择哪种方法取决于你的具体需求和管理习惯。
如果你想使用绝对导入,确保自定义包在Python的模块搜索路径中的一个位置,然后使用完整的包名来导入其中的模块或包。如果你想使用相对导入,可以在包内部直接使用相对路径进行导入。
关于Python包更多情况可见
Python的模块(module)和包(package) https://blog.csdn.net/cnds123/article/details/127222567
python复杂程序的组织讲座 https://blog.csdn.net/cnds123/article/details/108614392