首页 > 编程语言 > 详细

十一、python模块/包/路径

时间:2020-09-10 12:46:39      阅读:77      评论:0      收藏:0      [点我收藏+]

什么是模块:.py文件就是模块

什么是包:包含了__init__.py的模块的文件夹(目录)

模块和包的作用:就是为了组织代码

注意:directory 不是包,里面没有__init__.py模块

一、模块的导入

使用其他模块里面的函数、变量、类,模块导入

作用:使用/调用写好的代码

模块导入的方式:

from  路径.路径.模块名 import  类名(函数名)

import  路径.路径.模块名   路径从项目根目录开始

import  包名

import ddt
import json
import unittest
from FutureLoan.common.requests_handler import visit
from FutureLoan.middleware.MiddleHandler import MidInitHandler

 

二、模块分类

内置模块:Python自带的模块,import os

第三库模块:别人写好的模块,需要安装。pip install requests,import。。。。from····import······

自定义模块:自己写的模块,通常放在一个包里面。from  包  import 模块

扩展内容:

from ... import * ------>表示从模块中导入所有的代码

from FutureLoan.common.requests_handler import * 
# 一般不要使用,可能会出现和这个模块里的函数重名

from .....import sth as other        表示as 重命名,别名

from FutureLoan.common.requests_handler import visit as visit_new

打印导入模块路径

import sys
print(sys.path)

‘‘‘
[‘D:\\Program Files (x86)\\PyCharm\\workspace\\Lemon‘, ‘D:\\Program Files (x86)\\PyCharm\\workspace‘, ‘D:\\Program Files (x86)\\PyCharm\\workspace\\SmartCampus_web‘, ‘D:\\Program Files (x86)\\Python38\\python38.zip‘, ‘D:\\Program Files (x86)\\Python38\\DLLs‘, ‘D:\\Program Files (x86)\\Python38\\lib‘, ‘D:\\Program Files (x86)\\Python38‘, ‘D:\\Program Files (x86)\\Python38\\lib\\site-packages‘, ‘D:\\Program Files (x86)\\Python38\\lib\\site-packages\\win32‘, ‘D:\\Program Files (x86)\\Python38\\lib\\site-packages\\win32\\lib‘, ‘D:\\Program Files (x86)\\Python38\\lib\\site-packages\\Pythonwin‘]
‘‘‘

 

三、__name__

表示当前文件的模块名

运行文件、脚本   1.是模块,是特殊的模块  2.我们是通过这个文件运行程序的

通过模块导入形式运行的,__name__就是文件名、模块名称

直接运行的文件,脚本,__name__就不是文件名、模块名,是固定的:__main__

demo.py
if __name__==__mian__:
    print(demo)

demo1.py
if __name__==__mian__:
    print(demo1)

demo2.py
if __name__==__mian__:
    print(demo2)

demo3.py
from LianXi.test1 import demo
from LianXi.test1 import demo1
from LianXi.test1 import demo2
if __name__==__mian__:
    print(demo3)                   #运行后的结果为:demo3
demo.py
if __name__==__mian__:
    print(demo)

demo1.py
if __name__==__mian__:
    print(demo1)

demo2.py
if __name__==__mian__:
    print(demo2)

demo3.py
from LianXi.test1 import demo
from LianXi.test1 import demo1
from LianXi.test1 import demo2
print(demo3)                   #运行后的结果为:demo demo1  demo2  demo3

 

问题1:import 模块.函数 这样写可以吗?

如:import LianXi.test1.demo.visit
这样写是不可以的

导入模块,查找模块的顺序:项目目录–》Python安装目录(lib)----》pip install 第三方模块(site-package)
导入内置和第三方模块,直接import sth 即可,不需要写路径
导入自定义模块,通常是从根目录的下面开始找的,需要写明路径
为了不写路径,可以把自定义模块放到Python安装目录的lib下或者是第三方模块的site-package下,这样可以直接导入模块了

 

四、os模块

import os    主要处理系统相关操作

主要使用os.path,处理系统路径相关操作

import os.path  或者 from os import path

# 获取文件绝对路径(用的最多,因为绝对路径不会变)
print(os.path.abspath(__file__))
print(__file__)
print(__name__)

‘‘‘
D:\Program Files (x86)\PyCharm\workspace\Lemon\0714.py
D:/Program Files (x86)/PyCharm/workspace/Lemon/0714.py
__main__
‘‘‘

绝对路径:从系统的盘符或者是系统根目录开始

相对路径:一个路径相对于另一个路径的说法

__file__:当前文件的路径,可能是绝对路径,也可能是相对路径

__name__:模块名,没有路径

import os
# 获取文件绝对路径
file_path = os.path.abspath(__file__)
print("file_path:",file_path)
# 获取上一级路径
dir_name = os.path.dirname(file_path)
# 路径拼接
print(os.path.join(dir_name,demo.txt))

‘‘‘
file_path: D:\Program Files (x86)\PyCharm\workspace\Lemon\0714.py
D:\Program Files (x86)\PyCharm\workspace\Lemon\demo.txt
‘‘‘

注意:所有获取到的路径,只是一个路径的表示,并不代表这个文件或者路径真的存在

# 获取当前工作目录
print(os.getcwd())
# 创建一个新的目录(文件夹)
print(os.mkdir(class_2))
# 判断一个路径存不存在
print(os.path.exists(os.getcwd()))
# 判断当前路径是否是一个文件
print(os.path.isfile(os.getcwd()))
# 判断当前路径是否是一个目录
print(os.path.isdir(os.getcwd()))

‘‘‘
D:\Program Files (x86)\PyCharm\workspace\Lemon
None
True
False
True
‘‘‘
注意:获取到的路径是一个字符串

 

十一、python模块/包/路径

原文:https://www.cnblogs.com/zhangjx2457/p/13640561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!