1.time 模块

import time

s = time.localtime() # 把时间转化成格式化的时间,通过. 取得里面的年月日等 struct_time 格式

time.struct_time(tm_year=2018, tm_mon=3, tm_mday=11, tm_hour=19, tm_min=53, tm_sec=31, tm_wday=6, tm_yday=70, tm_isdst=0)

s=time.gmtime() #UTC 时区

s=time.time() # 返回当前时间戳

print(time.asctime()) #接收struct_time 转化成Sun Mar 11 19:46:08 2018 不传默认当前的时间

print(time.ctime(0)) #返回当前的时间Sun Mar 11 19:46:08 2018 默认当前时间

传入时间戳格式数字的话 转化成时间戳日期Thu Jan 1 08:00:00 1970

print(time.strftime("%Y-%m-%d", time.localtime())) # 传入的是struct_time 格式的时间格式 转换成自己定义的时间格式

print(time.strptime("2017-12-12", "%Y-%m-%d")) # 把字符串格式转化成struct_time格式

2.datetime模块

import datetime

s=datetime.datetime.now() #(2018-03-11 20:19:10.993661)

s下面好多方法 year mouth day date()=2018-03-11 ctime()=Sun Mar 11 19:46:08 2018 strftime("%Y-%m-%d")

print(datetime.date.fromtimestamp(time.time())) # 把一个时间戳转换成2018-03-11

# ############

# 主要是时间的运算

s = datetime.datetime.now()

print(s.timetuple()) # time.struct_time(tm_year=2018, tm_mon=3, tm_mday=11, tm_hour=20,

# tm_min=19, tm_sec=9, tm_wday=6, tm_yday=70, tm_isdst=-1)

print(s + datetime.timedelta(seconds=1)) # 实现运算的作用 后面跟 day hours seconds

d = datetime.datetime.now()

t = d.replace(year=2016) #修改时间并且返回修改后的时间 ,被修改的时间不变

print(t)

3.random模块的使用

import random

print(random.randint(1, 200)) # 随机 生成1-200之间的数字 包含200

print(random.randrange(1, 200, 2)) # 随机生成1-200(偶数) 不包含200

print(random.random()) # 0-1 的小数

print(random.choice("dasdadsasdad")) # 随机挑选一个字符串的字符

print(random.sample("adasdasdasdad",5)) #在字符串中随机挑选5个字符组成列表

#实现验证码

import string

print(string.ascii_letters) #大小写包含

print(string.hexdigits) #十六位进制

print(string.digits)#十进制

s_list=random.sample(string.ascii_letters + string.digits,4)

s=''.join(s_list)

print(s)

list_all=[i for i in range(80)] # # a='dasdasdasd' #不能是字符串 # random.shuffle(list_all) # 重新洗牌 使在原来的列表中生效 # print(list_all)

os 模块提供了很多允许你的程序与操作系统直接交互的功能

# os 模块提供了很多允许你的程序与操作系统直接交互的功能

import os

BASE_DIR = os.path.abspath(__file__) # 返回文件的据对路径

os.listdir(".") # 列出指定文件夹下的目录

os.path.join('aaa', 'aaa') # 把路径拼接

os.path.dirname(BASE_DIR) # 返回目录路径不包含文件

os.path.split(BASE_DIR) # 返回文件名和路径组成的列表

os.path.exists(BASE_DIR) # 判断path是否存在

os.path.isfile(BASE_DIR) # 判断文件是否存在

os.path.isdir(BASE_DIR) # 判断是否是一个目录

os.path.splitext(BASE_DIR)

os.path.basename(BASE_DIR) # 获取文件名

os.path.getsize(BASE_DIR) # 获取文件大小 ********常用

5.SYS模块的使用

sys.argv 命令行参数List,第一个元素是程序本身路径

sys.exit(n) 退出程序,正常退出时exit(0)

sys.version 获取Python解释程序的版本信息

sys.maxint 最大的Int值

sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.platform 返回操作系统平台名称

sys.stdout.write('please:') #标准输出 , 引出进度条的例子, 注,在py3上不行,可以用print代替

val = sys.stdin.readline()[:-1] #标准输入

sys.getrecursionlimit() #获取最大递归层数

sys.setrecursionlimit(1200) #设置最大递归层数

sys.getdefaultencoding() #获取解释器默认编码

sys.getfilesystemencoding #获取内存数据存到文件里的默认编码

json & pickle 模块 python 的序列化与反序列化的模块,用于程序之间的交互。

json 的有点就是跨平台 不同语言都支持json 确定就是支持的种类不多str int list tuple dict

json.loads()传可被json的文件类型json转化成字符串 json.load() json.dumps() json.dump()

pickle只可以在python里面使用 支持python的数据类型 ,占用体积比较大

import json

import pickle

# json 的有点就是跨平台 不同语言都支持json 确定就是支持的种类不多str int list tuple dict

# json.loads()传可被json的文件类型json转化成字符串 json.load() json.dumps() json.dump()

# pickle只可以在python里面使用 支持python的数据类型 ,占用体积比较大

d = {1: 2, 3: 4}

l = ["name", "age"]

s = json.dumps(d) # 把字典等格式转化成字符串

print(s)

d1 = json.loads(s) # 把字符串转换成字典形式

print(d1)

f = open("test.json", 'w') # 把字典等形式存在文件的变成字符串转换成字符

json.dump(d, f)

f.close()

f = open("test.json", 'r') # 从文件里读出来 转化成字符串

d2 = json.load(f)

# pickle 也是这样的形式 只是上传的时候文件储存的是以pickle的形式保存在文件里

shutil模块 该模块用于文件的copy与压缩 ,主要用于文件的打包、移动、等功能。

import shutil

# 拷贝文件 前提是文件必须打开 传的是句柄

shutil.copyfileobj(open("Log.py", "r"), open("Log_new.py", "w"))

# 拷贝文件 封装了打开文件 只需要传文件名(不是目录名)

shutil.copyfile("Log.py", "log_new.py")

shutil.copymode("Log.py", "lll.py") # 仅拷贝权限,目标文件必须存在

shutil.copy("Log.py", "lll.py") # 拷贝文件和权限

shutil.copy2("Log.py", "lll.py") # 拷贝文件和状态

# 拷贝目录 必须是目录

shutil.copytree("../FTP", "ftp", ignore=shutil.ignore_patterns("__init__.py"))

# 递归的拷贝文件,有个参数ignore=shutil.ignore_patterns("__init__.py")忽略的文件

shutil.rmtree("log_new.y") # 删除目录 文件不行的

shutil.move("log_new.y", "ll.py") # 移动文件,或者重命名

shutil.make_archive(base_name="log_l", format="zip", root_dir="../FTP") # 压缩文件

# base_name 指定压缩的路径 最后面跟压缩文件名,format= 压缩格式"zip", "tar", "bztar","gztar"

# root_dir 要压缩的文件路径(目录) owner 用户名 group 组名

模块xlrd,读取excel表格的模块xlrd 外部模块 需要pip 安装 只可以读取excle

其他Excel写入修改模块请链接 http://blog.csdn.net/yankaiwei120/article/details/52204427

import xlrd

# 解析xls表格文件的模块 用xlrd 写入用xlwd

Book = xlrd.open_workbook(r"C:\Users\zhuangjie23261\Desktop\风控文档.xls") # 打开文件返回一个book对象

sheet = Book.sheets() # 返回指定的sheet的对象形成一个列表

num = Book.nsheets # 返回文件的sheet的 个数

Book.sheet_by_index(1) # 返回指定的索引值的sheet 页的名称

Book.sheet_names() # 返回所有sheet页的名称

Book.sheet_by_name() # 根据名称返回sheet页对象

Book.sheet_loaded() # 根据指定的索引或者名称 来判断是否有 没有则报错

sheet.name # 返回sheet的名称

sheet.nrows # 返回sheet页的行数 -----行

sheet.ncols # 返回sheet页的列数 | 列

sheet.row(

1) # 获取指定的行 组成一个Cell_lisy列表[number:20100805.0, text:'O32_20100430sp2', text:'E类风控资产类别', text:'添加N-网下申购预估中签资产(公开发行)', empty:'', text:'胡育东']

sheet.row_values(1) # 指定行的列表 [20100805.0, 'O32_20100430sp2', 'E类风控资产类别', '添加N-网下申购预估中签资产(公开发行)', '', '胡育东']

sheet.col(1) # 获取指定的列 的cell_list

sheet.col_values(1) # 指定列的list

cell = sheet.cell(1, 2) # 根据位置获取Cell对象。

sheet.cell_value(1, 2) # 根据位置获取Cell对象的值。

print(cell.value) # 获取cell 的值

# 打印每张表的第一列

for s in sheet:

print(s.name) # 获取每个sheet页

for i in range(s.nrows): # s.nrows 每个sheet页 有多少行 s.row(i) 这个是返回每一行的一个列表-1 代表最后一个 value代表文本值

print(s.row(i)[0].value)

解析xml模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。

import xml.etree.ElementTree as ET

tree = ET.parse("test.xml")

root = tree.getroot()

print(root.tag) # tag > 这种属性的表头

for child in root:

print(child.tag, child.attrib) # attrib <>里面的属性 组成一个字典

for i in child:

print(i.tag, i.text) # <>text<> 文本内容

for year in root.iter("year"): # iter()相当于一个筛选器 筛选 <>里面的属性

print(year.text)

# *****************************************

# 对xml 修改

for year in root.iter("year"):

new_year = int(year.text) + 1

year.text = str(new_year) # 转换成字符串的格式 写入

year.set("updated", "yes") # set格式类型 updated yes 说明 更新

tree.write("test.xml")

#对xml 节点的删除

for country in root.findall("country"): # 节点就是node 遍历查找root 下面全部country的节点

rank = country.find("rank").text # 再查找到的每一个country下的rank 节点打印text

rank = int(rank) # 把str转化成int

if rank < 60:

country.remove(country.find("rank")) # 这样是移除country 下的节点rank 也可以直接remove这个country 这个大的节点

tree.write("new_test.xml") #把生成的写入新文件

# ***************************************

new_xml = ET.Element("namelist") # 生成一个xml的根节点最外层节点

name = ET.SubElement(new_xml, "name", attrib={"data": "2017-11"}) # 生成最外层节点之下的一个节点name

age = ET.SubElement(name, "age") # 在name 这个节点之下再生成两个节点 age,sex

sex = ET.SubElement(name, "sex") # sex

age.text = "33"

sex.text = "男"

# 给 age设置数字必须是字符

# 这里还可以加多个节点

name2 = ET.SubElement(new_xml, "name", attrib={"data": "2018-11"}) # 生成最外层节点之下的一个节点name

age = ET.SubElement(name2, "age") # 在name 这个节点之下再生成两个节点 age,sex

sex = ET.SubElement(name2, "sex") # 如果没有设置text 则会显示一个标签

age.text = "33"

#*********************************************

et = ET.ElementTree(new_xml) # 这一步是把上面的设置好的格式转化成xml的文档

et.write("new_xml.xml", encoding="utf8", xml_declaration=True) # 写入 文件

ET.dump(new_xml) # 打印写入的文件格式

configparser读取配置文件与对配置文件修改

import configparser

"""

[DEFAULT]

ServerAliveInterval = 45

Compression = yes

CompressionLevel = 9

ForwardX11 = yes

[bitbucket.org]

User = hg

[topsecret.server.com]

Port = 50022

ForwardX11 = no

***************

[group2]

k1 = v1

[group3]

k1 = v1

"""

# 解析

conf = configparser.ConfigParser()

conf.read("conf_new.ini") # 打开配置文件

sec_list = conf.sections() # 获取文件的sections ["DEFAULT"] 不打印

s = conf["bitbucket.org"]["User"] # 打印节点section下的User 的文本

for v in conf["topsecret.server.com"]:

print(v) # 打印 topsecret.server.com 下的节点名称 默认也打印default下的节点

# 查询

opt = conf.options("bitbucket.org") # 查找指定节点下的对用的key值

print(opt)

item = conf.items("bitbucket.org") # 返回 key value 对应的元祖

print(item)

val = conf.get("bitbucket.org", "compression") # group>[] key>k1:v1

val=conf.getint("topsecret.server.com", "Port") # 获得的值是int值

print(val)

# 增删

conf.read("conf_new.ini") # 打开配置文件

conf.remove_section("group1") # 删除节点group1

conf.add_section("group3") # 添加节点group3

conf.remove_option("group3", "k1") # 删除 option 先写组[] 然后填key

print(conf.has_section("group1")) # 判断有没有这个组

conf.set("group3", "k1", "v1") # 设置配置

conf.write(open("conf_new.ini", 'w')) # 写入文件必须是打开的文件 说白了就是传入文件句柄

python模块讲解_python中常用模块详解一相关推荐

  1. python数据类型讲解_Python之常用数据类型详解

    tuple 元组 1 #定义 2 temp = (2, ) #规范定义,单个元素的元组 3 tem = 2, #可行,但不规范定义 4 tep = () #空元组 5 6 tp = (1, 'ss', ...

  2. python os 常用方法_python中os常用方法详解

    os的官方解释 os os: This module provides a portable way of using operating system dependent functionality ...

  3. python unicode函数_python 中的unicode详解

    通过例子来看问题是比较容易懂的. 首先来看,下面这个是我新建的一个txt文件,名字叫做ivan_utf8.txt,然后里面随便编辑了一些东西. 然后来用控制台打开这个文件,同样也是截图: 这里就是简单 ...

  4. python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...

  5. python read_excel 参数_对Python 2.7 pandas 中的read_excel详解

    对Python 2.7 pandas 中的read_excel详解 发布时间:2020-08-28 03:32:56 来源:脚本之家 阅读:106 作者:G_66_hero 导入pandas模块: i ...

  6. Python包管理工具PIP常用命令详解

    1. PIP安装 目前Python2.7.10以上版本和Python3.3以上版本都已经自带了setuptools及pip,因此不需要额外考虑安装pip,只需要在安装的时候配置好就可以使用. 2. P ...

  7. python中common在哪个模块导入_python的常用模块之collections模块详解

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  8. python xlrd课程_python中xlrd模块的使用详解

    一.xlrd的安装 打开cmd输入pip install xlrd安装完成即可 二.xlrd模块的使用 下面以这个工作簿为例 1.导入模块 import xlrd 2.打开工作薄 # filename ...

  9. python中importlib模块安装_Python中标准模块importlib详解

    Python中标准模块importlib详解 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外 ...

最新文章

  1. Handler消息机制(八):Handler内存泄漏的场景有哪些,如何避免
  2. 【Python】Effective Python 读书笔记
  3. Docker小白到实战之开篇概述
  4. arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino
  5. memory拷贝与string拷贝的区别
  6. thincmf 分页无法搜索_分页的bug ThinkCMF内容管理框架,做最简约的ThinkPHP开源软件...
  7. azure centos 7安装mariadb
  8. FFmpeg再学习 -- Linux 安装说明
  9. JavaScript 技术篇-js正则表达式匹配中英文数字
  10. Linux挖矿病毒查杀
  11. 2017先给自己定一个小目标,比方说先挣一个亿
  12. idea报错 No valid Maven installation found.maven不能用
  13. 多台路由器堆叠_双网多网叠加教程
  14. WEB APP、HYBRID APP与NATIVE APP 差异分析
  15. 推荐一款快速上手的可视化分析工具:网易有数
  16. python数据可视化(matplotlib条形图、饼图、箱状图、直方图、折线图)(代码)
  17. 【基础】一叶知秋,从背包问题到动态规划
  18. Python基础之占位符
  19. activity destory掉后马上释放内存方法
  20. 基因数据处理88之vcf2omim得到omim和dbSnpId信息

热门文章

  1. Java :反射详解
  2. mysql的游标处理_MySQL存储过程 游标 错误处理的示例代码
  3. 机器人电量估计方法及实践
  4. 关于python中字典描述正确的是_python总结七
  5. 利用vertical-align实现图片文字垂直居中对齐(HTML、CSS)
  6. Ubuntu安装摄像头软件GTK_UVC_Viewer
  7. html强制文档模式ie8,html5 – IE9:强制IE9浏览器模式和文档模式
  8. Linux文件目录命令,有这些就够了?
  9. eclipse代码编辑区字符串自动转义设置
  10. Effective C++ 条款42