python res函数_python学习之函数进阶三

python学习之函数进阶三

一、模块介绍

os模块常用方法

os.getcwd()    #获取当前工作目录

os.listdir("F:\\")    #获取指定目录下的所有文件和目录

os.remove('b.json')    #删除指定文件

os.stat('a.json')    #获取文件属性

os.chmod()        #修改文件属性

os.mkdir('hyh')    #创建目录

os.rmdir('hyh')    #删除目录

os.system('dir')    #运行shell命令

os._exit(2)        #终止当前进程

os.path.split('/root/a.json')    #返回路径的目录名和文件名组成的元组,('/root', 'a.json')

os.path.isfile('a.json')    #校验是否是文件,是则返回True,否则返回False

os.path.isdir('hyh')        #校验是否是目录,是则返回True,否则返回False

os.path.exists('hyh')    #校验路径是否存在,是则返回True,否则返回False

os.curdir    #返回当前目录

os.chdir('hyh')    #改变当前目录到'hyh'

print(os.path.abspath('.'))    #获取指定目录的绝对路径

os.path.splitext('a.json')    #分离文件名和扩展名,返回文件名和扩展名的元组,('a', '.json')

os.path.join('\\root','a.json')    #连接目录和文件,\root\a.json

os.path.basename('/root/a.json')    #返回文件名

os.path.dirname('/root/a.json')    #返回目录名

sys模块常用方法

sys.argv    #返回从外部传递的参数

sys.exit(2)    #退出程序

sys.getdefaultencoding()    #获取系统编码

sys.path    #获取系统环境变量集合,可以将需要的模块或者变量添加进去

sys.platform    #获取系统平台

将当前目录加入环境变量

dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

sys.path.append(dir)

hashlib模块常用方法

md5: 加密字符串

例子

import hashlib

string = 'hyonghui'

m = hashlib.md5()

m.update(string.encode('utf-8'))

res = m.hexdigest()    #把字符串摘要转换成16进制字符串

print(res)

m1 = hashlib.md5('hyong'.encode('utf-8'))

m1.update('hui'.encode('utf-8'))

res1 = m1.hexdigest()

print(res1)

res和res1打印结果相同

sha256    #

sha = hashlib.sha256()

sha.update(string.encode('utf-8'))

res = sha.hexdigest()

print(res)

sha1 = hashlib.sha256('hyong'.encode('utf-8'))

sha1.update('hui'.encode('utf-8'))

res1 = sha1.hexdigest()

print(res1)

pickle模块使用方法

pickle序列化和反序列化数据

例子:

import pickle

dic = {'name': 'alex', 'age': 13}

print(pickle.dumps(dic))    #dumps函数序列化dic

with open('a.pkl', 'wb') as f:

f.write(pickle.dumps(dic))

with open('a.pkl', 'rb') as f:

res = pickle.loads(f.read())    #loads反序列化字符串成字典

print(res,type(res))

dic = {'name': 'alex', 'age': 13}

pickle.dump(dic, open('b.pkl', 'wb'))

res = pickle.load(open('b.pkl', 'rb'))

print(res,type(res))

import json

import pickle

def func():

print('from func')

#json.dumps(func)# 报错,json不支持python的函数类型

f=pickle.dumps(func)

print(f)

pickle.dump(func,open('c.pkl','wb'))

res=pickle.load(open('c.pkl','rb'))

print(res)

res()

json模块使用方法

json序列化对象以字符串方式保存到文件,并且可以反序列化,可以跨语言

例子:

序列化

import json

dic = {

'name': 'alex',

'age': 9000,

'height': '150cm'

}

res = json.dumps(dic)

print(res,type(res))

with open('b.json', 'w') as f:

f.write(res)

反序列化

import json

with open('b.json', 'r') as f:

dic = json.loads(f.read())

print(dic, type(dic))

shelve序列化

import shelve

f = shelve.open(r'sheve.txt')

f['student'] = {'name': 'alex', 'age':18, 'height':'180cm'}

print(f['student']['name'])

f.close()

random模块使用方法

random.random()    #生成0~1的随机数,随机数大于0小于1

random.uniform(10,20)    #生成指定范围的随机数,随机数大于m小于n

random.randint(10,20)    #生成指定范围的随机整数,  10<=n<=20

random.randrange(10,20,2)    #生成指定范围的随机整数, 10<=n<20 步长是2

import random

proxy_ip = [

'1.1.1.1',

'2.2.2.2',

'3.3.3.3',

'4.4.4.4'

]

v = random.choice(proxy_ip)    #从序列中随机选取一个

print(v)

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(random.sample(list, 5))    #随机选取指定长度的元素组成新的列表

生成5位随机数代码

def v_code(n):

res = ''

for i in range(n):

num = random.randint(0,9)

s = chr(random.randint(65,90))

v = str(random.choice([num,s]))

res += v

print(res)

v_code(5)

time模块常用方法

time.time()    #打印时间戳

print(time.localtime())    #结构化的时间

print(time.localtime().tm_year)

time.strftime('%Y-%m-%d %H:%M:S', time.localtime())    #按照固定格式打印时间

time.ctime()    #Mon Jun  5 14:55:03 2017

shutil模块常用方法

shutil实现文件复制功能

shutil.copyfile('a.json', 'a.txt')    #a.json为源文件,a.txt为目标文件

shutil.copyfileobj(open('a.json', 'r'), open('a.py', 'w'))

shutil.make_archive('data_bak', 'gztar', root_dir=r'E:\python\oldboyday6')    #归档操作

压缩解压缩

import shutil

shutil.copyfile('a.json', 'a.txt')

shutil.copyfileobj(open('a.json', 'r'), open('a.py', 'w'))

shutil.make_archive('data_bak', 'gztar', root_dir=r'E:\python\oldboyday6')

import tarfile

t= tarfile.open('data_bak.tar.gz', 'r')

t.extractall('extract_dir')

t.close()

subprocess模块常用方法

例子:

import subprocess

res = subprocess.Popen('dir', shell=True, stdout=subprocess.PIPE)    #标准输出给管道

print(res)

print(res.stdout.read().decode('gbk'))

import subprocess

res = subprocess.Popen('axlajsajen',shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)

print(res)

print(res.stdout.read())

print(res.stderr.read().decode('gbk'))

import subprocess

res1 = subprocess.Popen(r'dir E:\python\oldboyday6',shell=True, stdout=subprocess.PIPE)

res = subprocess.Popen(r'findstr txt*', shell=True, stdin=res1.stdout,

stdout=subprocess.PIPE, stderr=subprocess.PIPE)    #res1输出传递给stdin

print(res.stdout.read().decode('gbk'))

xml模块常用方法介绍

xml模块解析xml文件

例子:

import xml.etree.ElementTree as ET

tree = ET.parse('country.xml')

root = tree.getroot()    #获取根标签对象

for i in root.iter('year'):

print(i.tag,i.text,i.attrib)    #打印标签,标签内容,标签属性 year 2009 {'update': 'yes'}

print(root.find('country'))    #找到第一个country标签所在位置

print(root.findall('country'))    #找到所有country标签所在位置

for country in root:

print('====>', country.attrib['name'])

for item in country:

print(item.tag, item.text, item.attrib)

for i in root.iter('year'):

i.text = str(int(i.text) + 1)

i.set('update', 'yes')    #给标签添加属性

tree.write('b.xml')    #将country.xml的内容写到b.xml

生成xml文档

import xml.etree.ElementTree as ET

new_xml = ET.Element("namelist")

name = ET.SubElement(new_xml, "name", attrib={'enrolled': 'yes'})

age = ET.SubElement(name, 'age', attrib={'checked': 'no'})

sex = ET.SubElement(name, 'sex')

sex.text = '33'

name2 = ET.SubElement(new_xml, 'name', attrib={'enrolled': 'no'})

age = ET.SubElement(name2, 'age')

age.text = '19'

et = ET.ElementTree(new_xml)

et.write('test.xml', encoding='utf-8',xml_declaration=True)

ET.dump(new_xml)

configparse模块方法介绍

配置文件a.ini

[section1]

k1 = v1

k2:v2

db=pymysql+mysql://egon:123@192.168.2.3/db1

max_conn=30

enable=1

[section2]

k1 = v1

import configparser

config = configparser.ConfigParser()

config.read('a.ini')

print(config.sections())    #得到所有的section,并以列表方式返回['section1', 'section2']

print(config.get('section1', 'db'))    #过滤含有db关键字的匹配项,pymysql+mysql://egon:123@192.168.2.3/db1

print(config.getint('section1','max_conn'))    #和get函数相似,返回int类型

print(config.getboolean('section1', 'enable'))    #返回布尔值

print(config.has_option('section1', 'enable'))    #判断是否有enable配置项

print(config.remove_option('section1', 'enable'))    #删除某个配置

添加配置

import configparser

config = configparser.ConfigParser()

config.add_section('egon')

config.set('egon','name','egon')

config.set('egon', 'age', '18')

config.write(open('b.ini','w'))

logging模块方法介绍

例子:

import logging

logging.basicConfig(filename='access.log', format='%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s',

datefmt='%Y-%m-%d %H:%M:%S %p',

level=40

)

logging.debug('debug')

logging.info('info')

logging.warning('warning')

logging.error('error')

logging.critical('critical')

©著作权归作者所有:来自51CTO博客作者小白的希望的原创作品,如需转载,请注明出处,否则将追究法律责任

小白的希望

142篇文章,56W+人气,10粉丝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值