python 之常用模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_27109687/article/details/73850886

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/github_27109687/article/details/73850886—Test_huhy博客

模块其实就是一个python文件。导入模块(无论是用‘import 模块’还是用‘from 模块 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变量

二、Python的环境变量

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

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

三、random模块

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)

四、string模块

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

五、json模块

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

#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)#操作文件,把字典转成字符串,然后直接写到文件里

六、time/datetime模块

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

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天前的时间

七、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)
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'))#判断是否是路径

猜你喜欢

转载自blog.csdn.net/github_27109687/article/details/73850886