python模块,库

Python模块用于组织代码,例如sys、os和time是内置模块。import关键字用于导入模块,每个.py文件都是一个模块。文章展示了如何使用os进行文件操作,time处理时间,以及使用第三方库如requests和numpy进行网络请求和数值计算。还讨论了自定义模块、模块作用域和搜索路径,以及单元测试框架pytest。
摘要由CSDN通过智能技术生成

python模块

项目目录结构

模块定义

文件引用

python程序结构:package包、module模块、function方法

 模块是代码量变得相当大了之后,为了将需要重复使用的有组织的代码放在一起,这部分代码可以被其他程序引用,从而使用该模块里的函数等功能,引用的过程叫做导入(import),在python中,一个文件(以“.py”为后缀名的文件)就叫做一个模块,导入模块的写法:import module1[,module2...[,moduleN]] 或 from moduleimport<name[,name2,...[,nameN]]>

系统内置的模块(标准库):sys、time、os、json模块等

"""
python安装好之后自带的一些非常有用的模块(sys、os、time、json模块等)
使用关键词“import+模块名称”导入模块,同一个模块不管执行多少次“import”,只会被导入一次,import应该放在代码的顶端
"""
import sys
import time
print(sys.argv) #打印出执行文件的绝对路径 打印结果 ['D:\\software\\python\\project\\project1\\test_0108.py']
time.sleep(3) #等到3秒执行下一个操作
print("exit") #打印出 exit
# 系统内置模块,也就是常说的标准库,可以在当前项目下对目录和文件进行增删等操作
import os

# 创建目录,当前操作文件所在的文件夹下创建一个目录(也可以说是文件夹)
# os.mkdir('files')

# 查看当前操作文件所在的文件夹下所有的文件包含目录
print(os.listdir('./'))

# 删除文件
# os.removedirs('file_name')

# 查看当前操作文件的完整的绝对的路径
print(os.getcwd())

# 在当前操作文件所在的包下创建文件夹/包,并且在里面创建一个文件并写入内容
# 判断当前文件是否存在,false不存在
print(os.path.exists('file_folder1'))
# 创建文件夹
if not os.path.exists('file_folder1'):
    os.mkdir('file_folder1')
# 在文件夹下创建一个文件并写入内容
if not os.path.exists('file_folder1/test.txt'):
    w = open('file_folder1/test.txt', 'w')
    w.write('hello')
    w.close()
# time模块或者说time标准库,获取当前时间以及时间格式的模块,datetime模块是对time模块的二次封装
import time

# 生成时间戳:返回秒数,从1970年1月1日 00:00:00 (UTC)开始计算到目前的秒数
print(time.time())

# 生成国外时间格式
print(time.asctime())

# 时间戳转成时间元组
print(time.localtime())

# 将当前的时间戳转换成带格式的时间
print(time.strftime('%Y年%m月%d日 %H:%M:%S', time.localtime()))

# 获取两天前的时间
now_time = time.time()
two_day_before = now_time - 60*60*24*2
t = time.localtime(two_day_before)
print(time.strftime('%Y年%m月%d日 %H:%M:%S', t))

# 获取两天后的时间
two_day_after = now_time + 2*24*60*60
tt = time.localtime(two_day_after)
print(time.strftime('%Y年%m月%d日 %H:%M:%S', tt))
# urllib.request是对网络请求的一个库
import urllib.request

response = urllib.request.urlopen('http://www.baidu.com')
print(response.status)
print(response.read())
print(response.headers)
import math

# 返回大于5.5的最小整数6
print(math.ceil(5.5))

# 返回小于5.5的最大整数5
print(math.floor(5.5))

# 返回开平方根的浮点数4.0
print(math.sqrt(16))

第三方的开源模块:通过pip install进行安装,有开源的代码,必须知道该库名称,可以在官网或者pypi上搜索,比如MySQL的驱动程序,web框架flask,科学计算numpy等。numpy是python语音的扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。(运行Windows的cmd窗口,输入pip install numpy,即可在本地环境安装成功),如果pycharm中执行文件是在虚拟环境里,需要在pycharm中再次安装。可以在官网学习模块的方法等的调用(PyPI · The Python Package Index,查看documentation→user guide)

  

pytest第三方库:相当于python自带的unittest模块,pytest单元测试框架,pytest和allure搭配使用可以生成测试报告,allure是生成测试报告的第三方库,怎么安装pytest库呢:在Windows系统的cmd窗口直接输入 pip install pytest,进行安装,可以安装到本地的环境

requests第三方库:是进行网络访问的一个库,安装与pytest安装一样,输入pip install requests

自定义模块:自己写的模块,对某段逻辑或者某些函数进行封装后供其他人员或者其他函数调用,模块是变量、函数、或类组成的,自定义模块的命名不能与系统内置模块重名,否则将不能导入系统内置模块,例如自定义了sys.py模块,那系统内置的sys模块就不能调用了

#自定义模块
name_is_a_very_long_name = "Tom"

def add(a,b):
    return a + b
class index():
    def sub(self,a,b):
        return a - b

#当前执行文件为自定义模块文件
print(name_is_a_very_long_name)
print(add(1,4))
i = index()
print(i.sub(4,2))

#当前执行文件非自定义模块文件
import wumodule_1
from wumodule_1 import * #导入模块中全部的属性、方法等
from wumodule_1 import name_is_a_very_long_name as n #如调用的模块中的属性、方法、类名字很长时,可以再自定义一个简单的名
print(n) #调用属性
print(add(1,2)) #调用方法

模块的作用域:搜索路径,当导入一个模块时,python解析器对模块位置的搜索顺序是:1、当前目录;2、如果不在当前目录,python则搜索在sell变量pythonpath下的每一个目录;3、如果都找不到的话,python会查看默认路径,unix下默认路径一般为/usr/local/lib/python/。模块搜索路径存储在system模块的sys.path变量中,变量包含当前目录,pythonpath和安装过程决定的默认目录。

模块的好处:可维护性,可直接调用,不用再从零开始写代码,节约工作时间,避免函数和变量名称重复,在不同模块中可以存在相同名字的函数和变量名(不要和系统内置模块重名)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值