Python自动化五--函数补充,常用模块
1.内置函数
python内置的一些函数:
print()#输出函数
input()#输入函数
int() #将一个字符串或数字转换为整型
dict() #创建一个字典
set() #创建一个集合
list() #将元组转换为列表
str()#返回一个对象的string格式
len() #返回对象(字符、列表、元组等)长度或项目个数
open() #打开一个文件,创建一个 file 对象
tuple() #将列表转换为元组
type() #返回对象的类型
max() #返回字符串中最大的字母
dir() #返回当前范围内的变量、方法和定义的类型列表
sorted() #函数对所有可迭代的对象进行排序操作
#reverse = True 降序 ,reverse = False 升序(默认)。
print(chr(97))#打印数字对应的ascii
print(ord('b'))#打印字符串对应的ascii码
round() #保留几位小数
eval() #python执行代码
exec() #执行python代码
enumerate()#函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print i, element
zip() #将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
format() 字符串格式化函数 优点是解决参数过多时,赋值混乱的情况
msg='欢迎光临{name},今天的日期是{today}'
msg=msg.format(name='hi',today=datetime.datetime.today())
print(msg)
sql='insert into my_user value (%s,%s,%s,%s,%s)'%(id,name,sex,addr,phone)
sql='insert into{} value{}'.format('abc,','bcd')
format_map()
d={'name':'小黑','sex':'不知道'}
words='名字:{name},性别:{sex}'.format_map(d)
print(words)
字符集
电脑只认识二进制 0 1
ASCII码 A=65 a=97 美国人创造
gb2312 gbk unicode utf-8 存储中文字符
unicode 通用编码 所有字符一律2个字节
python2 默认编码 ascii码
python3 默认编码 utf_8
局部变量:在函数里面定义的变量都是局部变量,出了函数之后就不能用了
全局变量:在文件最上面定义的这个变量,就是全局变量
可变参数 * 非必填,对参数个数没有限制
** 传参数,把参数放在字典里,必须用关键字传参
def my(name,sex='男',*args,**kwargs):
print(name)
print(args)
print(sex)
print(kwargs)
my('xiaohei','hhh','args','args2',k1='v1',k2='v2')
random.sample() 随机选取指定个元素
import random
res=random.sample(range(1,34),6)
print(res)
列表推导式
res=[26,7,18,27,32,28]
#列表生成式,列表推导式
res=[str(i).zfill(2) for i in res]
print(res)
2.模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。
2.1 1 标准模块
python自带的模块就是标准模块,也就是可以直接import进来的就是标准模块
import json
import random
import datetime
import time
import os
2.12 第三方模块
别人写好的模块,你安装完之后就能用
安装途径:
- pip install pymysql
#1、pip命令不存在的,把python安装目录下的scrips加入环境变量
python2 -m pip install xxxx
python3 -m pip install xxxx
2.手动安装
(1).whl文件
1、先从python官网上下载安装文件
2、pip install c://xxx/xxxx/xxx.whl
(2) .tar.gz文件
1、先从python官网上下载安装文件
2、解压
3、在命令行里面进入到解压之后的文件夹中
4、python setup.py install
2.13.自己写的python文件
2.2 常用模块
import os
os.getcwd()#获取当前的路径
os.mkdir('spz1') #创建文件夹
os.makedirs('stu\\laowang') #若父目录不存在,会自动创建
os.rmdir('d:\\SJ1\\') #删除文件夹
os.remove('d:\\SJ1\\') #删除指定路径文件
os.listdir(r'd:\\') #获取当前目录下的文件
os.walk() #通过在目录树中游走输出在目录中的文件名,向上或者向下。
os.path.join('nhy123','test0','a.txt')#拼接路径,它会自动识别路径分隔符
os.sep()#当前系统的路径分隔符
os.path.dirname('e:\\nhy123\\test0\\a.txt'))#获取父目录的路径os.path.getsize('e:\\nhy123\\test0\\a.txt') #获取文件大小的
os.path.exists('code')#判断文件、文件夹是否存在
os.path.isdir('e:\\') #判断是否是文件夹,如果文件夹不存在的话,会返回False
os.path.isfile(r'e:\\nhy123\\test0\\a.txt')#判断是否是文件,如果文件不存在的话,会返回False
os.path.split(r'e:\nhy123\test0\a.txt')#分割文件名和路径的
小例子---把末尾是偶数的文件夹中,创建一个a.txt,里面随便写点东西
for dir in os.listdir('d:\\shangjie'):
if int(dir[-1])%2==0:
ads_path=r'd:\\shangjie\\%s\\a.txt'%dir
with open(ads_path,'w') as fw:
fw.write('test')
for cur,dirs,files in os.walk(r'd:\\shangjie'):
print(cur,dirs,files)
for f in files:
new_file_name=f+'.bak'
old_file_name=os.path.join(cur,f)
os.rename(old_file_name,new_file_name)
import time 日期相关
#时间戳 从Unix元年开始到现在的秒数
#格式化好的时间 2018-07-01
#时间元祖
print(time.time()) #获取当前时间戳
print(time.strftime('%Y-%m-%d %H:%M:%S'))
print(time.gmtime()) #把时间戳转成时间元祖 如果不传时间戳,去的是标准时区的
print(time.localtime()) #把时间戳转成时间元祖 如果不传时间戳,去的是当前时区
小例子---时间戳与时间格式互转函数
#1、时间戳转格式化好的时间
# 1、首先要把时间戳转成时间元组
# 2、再把时间元组转成格式化好的时间
def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
if timestamp:
time_tuple = time.localtime(timestamp) # 转成时间元组
return time.strftime(format,time_tuple) #把时间元组,转成格式化好的时间
return time.strftime(format)
#2、格式化好的时间,转时间戳,
#1、首先要把格式化好的时间 转成时间元组
#2、再把时间元组转成时间戳
def strToTimestamp(format_time=None,format='%Y%m%d%H%M%S'):
if format_time:
time_tuple = time.strptime(format_time, format)#把格式化好的时间,转成时间元组
return int(time.mktime(time_tuple))
return int(time.time())