欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简述python 的模块的分析

程序员文章站 2024-03-14 19:37:28
...

模块其实就是一个python文件。导入模块(无论是用'import模块'还是用'来自模块导入xxx)本质就是除if__name __ ='__ main'代码外,把该模块里的所有内容从头到尾执行一遍。

一,导入模块的概念

#(1)针对同一个目录下:
#前提:day文件里有product模块和model是模块。run是model模块里的函数,name是model文件里的变量

import model 
model.run()
print(model.name)
#在product模块导入同一个目录下的model.py文件,如果调用run函数的话,则使用‘model.run()’;如果调用name变量话,则使用‘model.name’,比如:print(model.name)

from model import run
run()
#如果在product模块导入同一个目录下model里的run函数的话,则直接使用‘run()’

from model import * 
run()
#product模块从同一个目录下的model里导入所有的函数,记住:这种方法慎用,因为多个模块的话,这样使用不便于找到函数所在的模块。如果使用run函数的话,则直接使用‘run()’

from model import name
print(name) 
#product模块导入同一个目录下model里的name变量,则name可以被拿来直接使用,比如:print(name)

#(2)针对不同目录下:
#前提是:项目下有day1和day两个目录下,day1下有CMS模块,模块里有hhh()函数和user_filename变量;day里有product模块

from day1 import CMS
CMS.hhh()
#或者
from day1.CMS import hhh
hhh()
#day下的product模块里导入day1下模块里的hhh函数

from day1.CMS import user_filename
print(user_filename)
#day下的product模块里导入day1下模块里user_filename变量
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 三十
  • 31
  • 32
  • 33

二,Python中的环境变量

环境变量就是用来让用户在任意一个目录都可以运行使用命令(比如:蟒)导入模块的时候,蟒首先在当前目录下去找这个模块,如果在当前目录下没有找到这个文件的话,那么就去环境变量里面找该目录。在pycharm运行,默认会把2个目录路径加入的Python环境路径里,其中一个是当前目录,另外一个是当前的项目目录,然而在CMD命令运行或服务器里运行,则需要自己手动把目录加入到环境变量,否则会找不到模块由此所以,代码里最好把当前项目目录加入到环境变量里
记住一点:蟒蛇代码运行结束,加入环境变量的路径就会自动去掉。

import sys
sys.path.insert(0,r'xxxx') #‘xxxx’是路径地址
  • 1
  • 2

三,随机模块

import random
print(random.random()) #获取随机浮点数,默认取0-1,不能指定范围
print(random.uniform(1,34)) #获取随机浮点数,可以指定范围
print(random.randint(1,366)) #随机取整数,可以指定范围
print(random.randrange(1,366))#随机取整数,可以指定范围
print(random.choice(['x45yqty',5,7,'a']))#随机从可迭代对象里去一个元素
print(random.sample(('x45yqty',5,7,'a',89,6),3)) #随机从可迭代对象里取几个元素,返回元组
x=[1,2,3,4,5,7,8,10,'aty']
random.shuffle(x) #洗牌,打乱原list的顺序,会改变原来的list值
print(x)
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10

四,串模块

#string模块
import string
print(string.ascii_letters)#获取所有的大小写字母,返回的是一个字符串
print(string.ascii_lowercase)#获取所有的小写字符,返回字符串
print(string.ascii_uppercase)#获取所有的大写字符,返回字符串
print(string.digits)#获取所有的数字,返回字符串
  • 1
  • 2
  • 3
  • 4
  • 6

五,JSON模块

字典和列表类型都可以通过JSON进行格式化以.json也是一种数据类型,它里也有列表和字典。

#json.loads()方法,例子如下:

import json,requests
url='http://video.tudou.com/subscribe/check?uid=UNDY1NjIwNDkwNA%3D%3D&_=1498723117672'
res=requests.get(url).text
print(type(res))
res_ll=json.loads(res)#json串转为字典
print(type(res_ll)

#json.load()方法,例子如下:
import json
fr=open('asg.json')
new_res=json.load(fr)
#把文件里的json串转换成字典,load方法是传入一个文件对象,然后load方法自动去读这个文件的内容,然后转成字典
print(new_res)
print(type(new_res))

#json.dumps()方法,例子如下:
import json
dic={
    'username':'huhy',
    'age':34,
    'sex':'女'
}
dic_j=json.dumps(dic) #字典转成json字符串
print(dic_j)
print(type(dic_j))

#json.dump()方法,例子如下:
import json
dic={
    'username':'huhy',
    'age':34,
    'sex':'女'
}
fw=open('zzh','w')
json.dump(dic,fw)#操作文件,把字典转成字符串,然后直接写到文件里
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 三十
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

六,时间/日期时间模块

时间有三种格式:第一种是时间戳,第二种是格式化时间,第三种就是时间元组

import time,datetime
time.sleep(1)#程序休息几秒
print(time.time())#获取当前时间戳
print(time.localtime(1497950139))#获取时间元组,其中1497950139是时间戳;默认是当前时区UTC+8
print(time.localtime())#时间戳不写的话,默认获取当前时间元组
print(time.gmtime(1498732057.6223967))#获取时间元组,默认是标准时区UTC
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(1498732057.6223967)))
# #将时间元组1498732057.6223967转换成格式化时间   2017-06-29 10:27:37
print(time.strftime("%Y-%m-%d %H:%M:%S"))#时间元组不写的话,默认获取当前格式化时间
print(time.asctime())#将时间元组转换成格式化时间,括号里不写默认当前时间。比如输出:Fri Jul 14 14:36:57 2017
print(time.ctime(1498732057.6223967))#讲时间戳转换成格式化时间,括号里不写默认当前时间。比如输出:Thu Jun 29 18:27:37 2017
print(datetime.datetime.now())#将当前时间格式化输出  2017-06-29 18:35:24.570104
print(datetime.datetime.now()+datetime.timedelta(3))#3天后的时间
print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的时间
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

七,OS / SYS模块

import sys
print(sys.argv)#获取命令行参数list,第一个元素是程序本身路径,后面的元素是参数
print(sys.version)#获取Python解释程序的版本信息
print(sys.path)#返回模块的搜索路径,初始化使用PYTHONPATH环境变量的值
print(sys.platform)#返回操作系统平台名称
sys.stdout.write('please:')#向屏幕输出一句话,等价于:print('please:')
val=sys.stdin.readline()[:-1]#获取输入的
sys.exit(0)#退出程序,正常退出时exit(0)
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
import  os,time
print(os.getcwd())#获取当前工作目录,绝对路径
os.chmod('\user\bin',7)#linux环境下,给文件/目录加权限
print(os.chdir(r'D:\learning\huhy'))
#更改当前目录,到指定目录中
print(os.makedirs("OS/huhy1/hat1"))#在父目录下递归创建文件夹
print(os.removedirs("OS/file"))#递归删除空目录,若不是空目录无法删除,会报错
print(os.mkdir('huat'))#创建文件夹,若文件夹已存在则会报错
os.rmdir(r"D:\learning\huhy\sample\huat")#删除文件夹
print(os.remove(r'D:\learning\huhy\sample\huat\sss.txt'))#删除文件,若文件找不到会报错
os.rename(r'huat\test.txt',r'huat\case.txt')#重命名文件的名称
print(os.stat(r'huat\case.txt'))#获取文件信息
print(os.name)#显示当前使用的平台
print(os.sep)#当前操作系统的路径分隔符
print(os.environ)#当前系统的环境变量
print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是‘,’,windows是‘;’
print(os.linesep)#当前操作系统的换行符
with open('huat\case.txt','w',encoding='utf-8') as fw:
    fw.write('ddddd')
    fw.write(os.linesep)
    fw.write('taayy')
print(os.path.abspath(__file__))#获取当前文件的绝对路径
print(__file__)#这个也会获取到当前文件的路径,但是路径里面的斜杠不符合路径格式
print(os.path.split('huat\case.txt'))#分割文件和路径名称
print(os.path.dirname(r'\usr\local\bin'))#获取父目录
print(os.path.exists(r'\usr\local\bin\a.txt'))#判断文件目录/文件是否存在,存在就返回True,否则返回False
print(os.path.join(os.path.dirname(os.path.abspath(__file__)),'huat'))#拼接成一个路径
print(os.path.join(r'D:\learning\huhy\sample','huat'))#同上,拼接路径
print(os.listdir('.'))#列出当前目录下的所有文件
print(os.listdir('..'))#列出父目录下的所有文件
print(os.path.getatime(r'D:\learning\huhy\day\login.py'))
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getatime(r'D:\learning\huhy\day\login.py'))))
#os.path.getatime输出最近访问时间戳
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getmtime(r'D:\learning\huhy\day\login.py'))))
#os.path.getmtime输出最近修改时间戳
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getctime(r'D:\learning\huhy\day\login.py'))))
#os.path.getctime输出文件创建时间戳
print(os.curdir)#当前目录
print(os.pardir)#父目录
print(os.path.basename(r'\usr\local\bin\a.txt'))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
print(os.path.isabs(r'D:\sample\huat\sss.txt'))#判断是否是绝对路径,是绝对路径返回True,否则返回False
print(os.path.isfile(r'D:\learning\huhy\sample\huat\case.txt'))#判断该绝对路径是否是文件
print(os.path.isdir(r'D:\learning\huhy\sample\huat'))#判断是否是路径
相关标签: 模块