简述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'))#判断是否是路径
上一篇: 求101到200之间的素数
下一篇: 笔试题:求整数序列中三个数的最大公约数:
推荐阅读
-
简述python 的模块的分析
-
需要攻克的模块 博客分类: Android phonesystemuiBluetoothjni
-
JavaScript的模块系统详解(三)
-
需要攻克的模块 博客分类: Android phonesystemuiBluetoothjni
-
java流的总结——从原理分析 博客分类: java IO javaio数据源字节字符
-
对python中list的一些使用体会
-
有在Stackless Python (or PyPy)上实现的开源Web Server吗? 博客分类: Web PythonWebErlangnginxRuby
-
HotSpot的G1收集器(日志分析)
-
Python中的四种数据类型的操作
-
最详细的centos7中安装python3