博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用模块random/os/sys/time/datatime/hashlib/pymysql等
阅读量:5922 次
发布时间:2019-06-19

本文共 6698 字,大约阅读时间需要 22 分钟。

一.标准模块

1、python自带的,import random,json,os,sys,datetime,hashlib等

  ①.正常按照命令:打开cmd,执行:pip install rangdom/json/os/datetime等模块名称

  ②.下载安装包,安装包分两种格式:.whl 和.tar.gz格式,其中:

    .whl安装:pip install xxx.whl

    .tar.gz安装:解压后,执行:python setup.py install

注:若电脑安装了多个版本的python,安装模块的时候,可以执行:

python3 -m pip instatll 模块名 python2 -m pip instatll 模块名

2、第三方模块

  python导入模块的时候的顺序:

      1.从当前目录下找需要导入的python文件

    2.从python的环境变量中找(python的安装路径的环境变量)

**导入模块的实质:就是这这个python文件从头到尾执行一遍

两种导入方法,例如:

方法1:

# import fancy    #fancy是一个自己写的python文件,其中包含一个my()方法,一个name变量 # fancy.my()     #调用fancy文件的my()方法 # print(fancy.name)   #打印fancy文件的name变量

方法2: 

#from fancy import my,name, #my() #print(name)

3、自己写的python文件

二.函数返回多个值:

1、函数如果返回多个值的话,它会把这几个值放到一个元组里面

def say():    num1 = 1    num2 = 2    num3 = 3    return num1,num2,num3 print(say()) 结果:

2、函数如果返回多个值的话,也可以用多个变量来接收

def say():    num1 = 1    num2 = 2    num3 = 3 res1,res2,res3 = say() print(res1) print(res2) print(res3) 结果:

三.列表生成式

#外面是小括号的话,它就不是一个list了,它是一个生成器,

#生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面

#list它是把所有的元素都放在内存里面的

结果:

四.lambda(匿名函数)这个函数的功能简单,只用一次

lambda x: x+1      #冒号后面的是函数体,也是函数的处理逻辑,冒号前面的返回值

比如:对字典里的key或value进行排序:

d = {'a':8,'b':2,'c':3} #字典是无序,直接对字典排序是不存在的。 print(d.items())   #获取字典的k,v:dict_items([('c', 3), ('b', 2), ('a', 8)]) res = sorted(d.items(),key=lambda x:x[1])  #对字典里的value进行排序  print(res) 结果:

    

五.常用标准模块:

os模块:对操作系统的一些操作

print(os.getcwd())    #获取当前工作目录      结果:C:\Users\Fancy\Desktop\学习笔记\day6

print(os.chdir("../day5"))#更改当前目录    #相对路径:../day5/xx  绝对路径:C:\Users\Fancy\Desktop\学习笔记\day6

os.listdir('e:\\')#列出目录下所有的文件和文件夹

os.remove() #删除文件

os.rename(old,new) #重命名
print(os.sep)#当前操作系统的路径分隔符  
res = os.system('ipconfig') #执行操作系统命令的,但是获取不到结果
res = os.popen('ipconfig').read() #可以获取到命令执行的结果
print(os.path.abspath(__file__))#获取绝对路径

prtint(os.path.abspath('.')#获取当前文件的绝对路径

print(os.path.split("/usr/hehe/hehe/txt"))  #分割路径和文件名    结果:('/usr/hehe', 'hehe.txt')

print(os.path.dirname("e:\\syz\\ly-code"))#获取父目录,获取它的上一级目录   结果:e:\syz

print(os.path.basename("e:\\syz\\ly-code\\a.txt"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名   结果:a.txt

print(os.path.exists(r"E:\syz\ly-code\day6")) #判断文件或者目录是否存在       True 或False

print(os.path.isfile("xiaohei.py"))   #判断是否是一个文件,1、文件要存在2、必须是一个文件(返回True时)
print(os.path.isdir("e:\\syz1"))#是否是一个路径,目录是否存在
size = os.path.getsize('x.py') #获取文件的大小
os.path.join("root",'hehe','mysql','a.sql') #拼接路径    结果:root\hehe\mysql\a.sql
for abs_path,dir,file in os.walk(r'e:\nhy'):
print(abs_path,dir,file)
# abs_path 当前循环的绝对路径
# dir 目录下面所有的文件夹 [ ]
# file 目录下面的所有文件 []

os.walk小练习:

# 把双数日期的日志,里面给随便写点东西。 # 1、获取到log目录下面的所有文件 os.walk() # 2、根据文件名来判断,是否是双数日期 ,分割字符串,取到日期 # 3、12%2==0 # 4、打开这个文件 open()
import osfor abs_path,dir,file in os.walk(r'E:\syz\ly-code\day6\logs'):    for f in file:        day = f.split('.')[0].split('-')[-1]        if int(day)%2==0:            file_name = os.path.join(abs_path,f)#拼接绝对路径            open(file_name,'a+',encoding='utf-8').write('写东西')#
View Code

sys模块:

print(sys.platform) #判断操作系统     比如:win32

#python的环境变量

sys.path.append(r'E:\syz\ly-code\day5')

sys.path.insert(0,r'E:\syz\ly-code\day5')

print(sys.path)   #python的环境变量,python的安装包路径

print(sys.argv) #用来获取命令行里面运行python文件的时候传入的参数

os,sys模块小练习:

import sysimport oscommand = sys.argvprint(command)if len(command)>1:    cmd1 = command[1]    if cmd1=='--help':        print('这个是帮助文档'              '这个python文件是用来说明sys.argv的作用')    elif cmd1=='os':        print('当前的操作系统是%s'%sys.platform)    else:        print('输入命令有误')else:    print('运行python的时候要传入一个参数'          'e.g '          'python xx.py install ')
View Code

time模块: 

import time #1、时间戳  从unix元年到现在过了多少秒 #2、格式化好的时间   如:年-月-日 时:分:秒 #先转成时间元组 # print(time.time())  #获取当前时间戳    结果:1524559130.6626565 # time.sleep(10)      #休眠10s #today = time.strftime('%Y-%m-%d %H:%M:%S')    结果:2018-04-24 16:41:44 #print(today)    # print(time.gmtime()) #默认取的是标准时区的时间元祖

s=time.localtime(1514198608)  #取到的是当前时区的时间元祖

# print(time.strftime('%Y-%m-%d %H:%M:%S',s))

#时间戳转换时间元组 # 1、时间戳转成时间元组  time.localtime() # 2、再把时间元组转成格式化的时间 写成一个函数:
def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'):   #1、默认返回当前格式化好的时间   #2、传入时间戳的话,把时间戳转换成格式化好的时间,返回   if timestamp:   #如果传了时间戳      time_tuple = time.localtime(timestamp)   #先转换成元组      res = time.strftime(format,time_tuple)   #再转换成格式化时间   else:      res = time.strftime(format)  #默认取当前时间   return res
View Code
比如,print(timestamp_to_fomat(197323242,'%Y-%m-%d')) 格式化好的时间转换成时间戳:   1.先转成时间元组   2.再把时间元组转成时间戳 比如:2018-4-21转成时间戳 # tp = time.strptime('2018-4-21','%Y-%m-%d')  #把格式化好的时间转成时间元组的 # print(time.mktime(tp))  #mktime()把时间元组转成时间戳 写成函数:
def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):   # 20180421165643   #默认返回当前时间戳   if str: #如果传了时间的话      tp = time.strptime(str,format) #格式化好的时间,转成时间元组      res = time.mktime(tp)#再转成时间戳   else:      res = time.time()  #默认取当前的时间戳   return int(res)
View Code
datetime模块 import datetime print(datetime.datetime.today()) #获取当前时间,精确到秒 print(datetime.date.today()) #精确到天 res = datetime.datetime.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=5) 如果是几天/小时/周/秒后的,应该是(days=-1,minutes=-5,seconds=-5,weeks=-5) print(res.strftime('%Y-%m-%d'))
hashlib模块(加密) import hashlib m = hashlib.md5() # bytes passwd = 'NHY_*&^_1982343532' # passwd.encode() #把字符串转成bytes类型 m.update(passwd.encode())   #不能直接对字符串加密,要先把字符串转成bytes类型 print(m.hexdigest()) #md5加密是不可逆 小练习:
def my_md5(str):   import hashlib   new_str = str.encode() #把字符串转成bytes类型   # new_str = b'%s'%str  #把字符串转成bytes类型   m = hashlib.md5()  #实例化md5对象   m.update(new_str)  #加密   return m.hexdigest()  #获取结果返回
View Code

pymysql模块(操作数据库)

import pymysql # 1、连上数据库  账号、密码 ip 端口号 数据库 #2、建立游标 #3、执行sql #4 、获取结果 # 5、关闭游标 #6、连接关闭 coon = pymysql.connect(    host='118.24.3.40',user='jxz',passwd='123456',    port=3306,db='jxz',charset='utf8'    #port必须写int类型,    #charset这里必须写utf8 ) cur = coon.cursor() #建立游标 # cur.execute('select * from stu;')#执行sql语句 cur.execute('insert into stu (id,name,sex) VALUE (1,"fancy","女");') # delete update insert coon.commit()  #必须得coomit res = cur.fetchall()  #获取所有返回的结果 print(res) cur.close()#关闭游标 coon.close()#关闭连接 xlwt模块(操作excel) import xlwt book = xlwt.Workbook() #新建一个excel sheet = book.add_sheet('sheet1')#加sheet页 sheet.write(0,0,'姓名')#行、列、写入的内容 sheet.write(0,1,'年龄') sheet.write(0,2,'性别') book.save('stu.xls')#结尾一定要用.xls

不常用:

print(os.makedirs("nhy/python"))#递归创建文件夹,父目录不存在时创建父目录 print(os.mkdir("zll/huangrong"))#创建文件夹,父目录不存在时会报错 makedirs 创建文件夹的时候,如果父目录不存在会自动帮你创建父目录,如果创建一级时,用哪个都OK
print(os.removedirs("nhy/python"))#递归删除空目录 print(os.rmdir("test2"))#删除指定的文件夹 #只能删除空目录 os.remove("test2")#只能删除文件 os.rmdir('test2') #只能删文件夹
print(os.stat("x.py"))#获取文件信息
print(os.environ)#当前系统的环境变量
print(os.name)#当前系统名称  Windows系统都是nt linux都是posix
print(os.path.isabs("../day5"))#判断是否是绝对路径
 

转载于:https://www.cnblogs.com/fancyl/p/8920627.html

你可能感兴趣的文章
【spring框架】Spring简单类型注入
查看>>
如何在Android Studio上使用Github
查看>>
PostgreSQL 聚合函数讲解 - 4 总体协方差, 样本协方差
查看>>
【HTML5】H5的新标签简介
查看>>
翻翻git之---编译器般高大上的WebView RichEditor (PS:家里两个小祖宗大爆照)
查看>>
C++并发编程那些事(上)
查看>>
6月16日SLB杭州地域升级公告
查看>>
c++ get与set方法的宏定义实现
查看>>
什么是程序员眼里的理想公司
查看>>
一款基于Mybatis的编译期SQL生成器
查看>>
玄学:那些年我为之疯狂的超能力(有音频版)
查看>>
RecorderManager安卓仿微信自定义音视频录制第三方库
查看>>
合格前端系列第五弹- Virtual Dom && Diff(迁移)
查看>>
你确定不来了解一下Redis列表的内部原理吗
查看>>
【带你做项目】第二期,Vue+Node全栈仿大众点评
查看>>
Android:AsyncTask的使用及分析
查看>>
java 企业 网站源码 模版 屏幕自适应 有前后台 springmvc SSM 生成静态化
查看>>
庆祝我的第一本书出版
查看>>
redis-(3)持久化
查看>>
Netty一:我和NIO不得不说的关系
查看>>