栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python模块

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python模块

模块
  • 什么是模块
  • 模块的分类
  • 第三方模块
    • 安装方式
  • 内置模块
    • sys
    • os
    • time&datetime
    • random
    • json& pickle
  • 练习

什么是模块

一个.py 文件就是一个模块。
随着代码量的增多,需要将相关的代码放入一个单独的.py文件中,便于管理、维护;代码重用;避免函数重名。

将多个模块及__init__.py放入一个文件夹,则这个文件夹就是一个

模块的分类

python标准模块(内置)
第三方模块(pip安装)
用户自定义的模块

#导入模块
import random
import numpy as np
#导入模块中的一个函数
from random import randint,random
#导入模块中的所有变量、函数、类  ; 不建议这么做
from random import *

#导入包中的函数
from urllib.request import urlopen

模块导入的查找顺序

  1. 当前目录
  2. PYTHONPATH(linux系统中配置)
  3. sys.path 中的路径
第三方模块

第三方模块网址
国内源镜像

安装方式
  1. 离线安装,需先下载tar.gz,解压
cd 文件夹
python setup.py install   #源码还需build编译

或者下载whl文件

sudo pip3 install xxx.whl

  1. 在线安装
#win
python -m pip install numpy

#linux
sudo pip3 install numpy 

以上默认是从pypi.org 下载安装,速度比较慢。
可以使用国内的源,如下:

sudo pip3 install numpy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

#-i 指定源
#--trusted-host 信任的主机,通过https的安全验证
内置模块 sys
sys.argv  #收集命令行的参数,放入列表
sys.exit(0) #程序正常退出
sys.platform # os平台
sys.getdefaultencoding() #获取解释器的默认编码
sys.getfilesystemencoding() #文件的默认编码
os
import os 
dir(os) #查看所有的方法、模块

os.getcwd()  #获取当前的工作目录
os.listdir("./")
os.mkdir("a") #创建目录
os.makedirs("a/b/c")
os.remove('a.txt')
os.removedirs("/a/b/c")
os.path.isfile("a.txt") # True
os.path.isdir("a.txt") # False
os.path.isabs("/home/ta") # True
os.path.abspath("a.txt") # 获取文件的绝对路径
os.path.exists("a.txt") #文件、目录是否存在
os.path.split("/a/b/test.txt") # ("/a/b", "test.txt")
os.path.splitext("/a/b/c.txt") #("/a/b/c", '.txt')
os.path.dirname("/a/b/c.txt")
os.path.basename("/a/b/c.txt")

#执行shell命令
os.system("ls -l")
os.popen("ls -l").read()

os.getenv("HOME") #获取环境变量
os.environ #所有的环境变量
os.environ.setdefault("HOME", "xxxx") #设置系统的环境变量
os.linesep #行分隔符 win --> rn  linux->n
os.name  #操作系统的名字 win-->nt  linux -->posix
os.rename("a.txt","b.txt")
os.stat("a.txt") #统计文件的属性
os.chmod("a.txt",400) #修改权限
os.chdir("/a/b/c") #切换目录
os.path.getsize("a.txt") #获取文件的大小 bytes
sys.getsizeof(obj)# 对象占用多少字节
os.path.join("/a/b","c.txt")
os.get_terminal_size()
os.kill(pid,signal.SIGKILL)
time&datetime

时间模块,表示时间、时间差值等

import time
time.localtime() #本地时间 元组(年、月、日、时、分、秒、一周的第几天、一年的第几天、是否夏令时)
time.time() # 1970-1-1 000000到现在的时间 s
time.clock() #从第一次计时,到第二次之间秒数

time.ctime() #本地时间 字符串;或者将时间戳转为时间字符串
time.gmtime() #格林尼治时间 元组,比北京时间慢8小时
time.mktime() #将时间元组,转为时间戳
time.sleep(4) #程序休眠
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
time.strptime("2021-11-30 22:24:00","%Y-%m-%d %H:%M:%S") #格式一定对应


datetime模块

from datetime import datetime,date,time
datetime.today()
datetime.now()
datetime(2021,11,30,22,31,00)
datetime.fromtimestamp(time.time())
datetime.strftime(datetime.now(),"%Y-%m-%d %H:%M:%S")
datetime.strptime("2021-11-30","%Y-%m-%d")

from datetime import timedelta
datetime.now() + timedelta(days=1,hours=3,minutes=5,seconds=100)

t.replace(year=1999) #时间的替换

#时区
import pytz    #python time zone
pytz.all_timezones
pytz.timezone("Asia/Shanghai")
datetime.now(tz=pytz.timezone("Asia/Shanghai"))

random json& pickle

pass

练习

1.自定义一个模块,在模块内定义一个函数test。在函数体内打印_ _file_ _,在模块内使用如下方式执行该函数:

# yourname.py
print("这是我的自定义模块")
def test():
	print("test 函数执行")
	print("文件名:",__file__)
if __name__ == "__main__":
	test()

a. 执行你的模块,查看结果。
b. 配置你的模块到处都可以导入,打开一个python shell导入你的模块,与a步骤中对比,你能发现什么问题?思考一下
c. 调用模块里的test函数,跟a中对比,有什么发现?
 
 

2.编写一个函数,接收一个参数(通过命令行传参),如果传入的是py文件,则执行该文件; 若是文件夹,则执行该目录下所有的py文件。

import os
import sys

def test(param):
    
    if os.path.isfile(param) and param.endswith(".py"):
        os.system("python %s"%os.path.abspath(param))

    elif os.path.isdir(param):
        dir_ = os.path.abspath(param)
        file_list = os.listdir(dir_)
        
        for i in file_list:
            i = os.path.join(dir_, i)
            if os.path.isfile(i) and i.endswith(".py"):
                
                os.system("python %s"%os.path.abspath(i))
            else:
                print("unexpected")

if __name__ == "__main__":

    test(sys.argv[1])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/619427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号