LMZhaoyun
"""
    导包或导模块:
        包:也就是文件夹,在文件夹中有一个文件_init_.py,可以导入保重的内容使用(模块、模块中类和方法)
        模块:在python你所定义的所有.py结尾的文件都叫模块(模块中的类和方法)
    导包、导模块的关键字:import 、from
        import selenium
        from selenium import webdriver

        #sys:是python提供的一个系统参数模块
        import sys
    导包、模块的方式:
        1、将整个模块(.py文件)导入到当前文件,import somemodule
        2、导入模块中的某些方法或者类:from somemodule import somemethod/someclass
        3、导入模块中多个方法或者类:from somemodule import somemethod1,somemethod2,...
                from somemodule import *
        4、as运算符的用法,把发乳的方法、类重命名一下(对导入的比较长的方法名或者类名进行重命名)
"""
import sys
import selenium

print(sys.path)
\'\'\'
input--csv/excel/txt文件,将数据导入到脚本中
output--脚本运行的结果输出到日志.log/.txt
模块的概念:
    创建的python文件(.py结尾的文件),模块中定义了类、方法、语句、变量等
模块的作用:
    1、把相同类型的方法或者类,放入到一个.py文件
    2、更好的组织你的代码
    3、模块中是可以定义类、方法、变量和可执行的代码
        第一种格式:
        a、对于导入模块中的变量和语句是可以直接执行的
        b、对于导入的方法,需要调用才能执行
        c、对于导入的类,需要创建对象,对象调方法才能执行
        第二种格式:
        a、这种结构更具有针对性,你想用导入模块中哪一部分就用哪一部分(变量、方法、类)
        b、在导入的时候,可以执行语句是直接过来的
        c、并且在使用的时候比较方便,直接使用变量、方法名和类名就可以了,不需要使用:
        模块名.xxx
如何使用模块:
from xxx import yyy  --->这种更有针对性
import xxx  ---->把模块中定义的所有类和方法的副本拿到文件中
from xxx import yyyyyyyyyy as y
模块名.方法()
模块名.类名()
python的标准库Lib
第三方库 site-packages
\'\'\'
\'\'\'
第一种导入方法:
import math
import test

print(math.sin(math.pi / 2))
print(math.pi)
print(test.sum(3, 4))

aa = test.person()
aa.printInfo()
\'\'\'
from test import person

aaa = person()
aaa.printInfo()
\'\'\'
标准库:
    python的安装目录/Lib下
        sys
        os
第三方库:
    selenium:web端自动化测试所需要的包(文件夹(要有一个__init__.py),其中包括很多模块
    appium:app端自动化测试的所要的包
    BeatifulReportr:把脚本运行结果以比较漂亮的格式输出来(HTML格式)
    pymysql:帮我们连接数据库,并且可以对数据进行增删改查发包

\'\'\'
import sys
import os #经常会使用这个模块,获取当前正在编辑的问价所在的文件夹路径
# 就是python的环境变量path
pp=sys.path
print(pp)

# 你写了一个小代码,其中一句代码中需要用到一个文件,如果你给这个文件指定的是绝对路径,写好之后发给我,我是不能运行的
# 为了之后写的脚本更好的扩展,一定是使用相对路径,可以使用下面代码进行获取相对路径
ppp=os.path.dirname(__file__)
print(ppp)  #c:/Users/Admin/Desktop/学习/python/复习/模块、异常、IO
\'\'\'
__name__=="__main__"的用法:
    __name__是模块的文件名标识,如果在当前文件运行的时候__name__就等于"__main__"
    在其他文件(moduleDemo2.py模块)调用的模块(test.py)时候,__name__就等于"__main__",等于导入模块的模块名:test

使用场景:
    一般是用在模块的测试代码(模块中的可执行代码要放在这个if语句中)
    本模块可以使用这些测试代码,常用在排查问题的时候,直接执行,调试代码能够正常
    其他模块导入该模块的时候,就不在执行这个测试代码
\'\'\'

# 需求:导入模块的时候,不希望把导入的模块中的可执行代码运行出来
import test  # 执行print(__name__)后输出test 其他模块调用我,执行我!!!!
\'\'\'
不同级目录导入模块
\'\'\'
import sys

sys.path.append("..")
# 导入下级模块
from Test1 import test1

print(sys.path)

 

1、要导入的test1这个文件不再当前目录下(和当前的编辑文件)
解决方法:是不是可以将test1.py的目录加入到sys.path这个列表中,(因为导包时,查询包需要从sys.path里面去找)
操作一:
import sys
import os
path=sys.path   #sys.path 返回结果是列表
path.append(r "./")   #需要追加的是相对路径,不能用绝对路径
\'\'\'
第一种相对路径的用法:只有使用vscode编写或执行的时候才能用
vscode中有个工程目录:通过file-打开文件夹,这个打开的文件夹就是工程目录,在当前是复习目录
工程目录用 ./ 表示,这个知识点是需要掌握的
第二种相对路径的用法,最保险,获取当前编辑的文件所在的目录,需要用os模块,这种方法必须掌握
dirn=os.path.dirname(__file__)
path.append(dirn)
需要获取当前dirn上一级目录
可以使用dirn = os.path.dirname(os.path.dirname(__file__))
接着将dirn追加到path中
path.append(dirn)
\'\'\'
print(sys.path)
import test1

 

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-05
  • 2022-12-23
  • 2022-01-03
  • 2021-12-23
  • 2022-12-23
  • 2021-10-28
  • 2022-01-19
相关资源
相似解决方案