模块:用来从逻辑上组织代码,本质是.py结尾的Python文件。

Python Package(包): 用来从逻辑上组织模块,本质是文件夹,必须带有__init__.py文件。

导入模块:

1、import module_name1,module_name2......   导入模块文件,调用时用module_name.variable_name。

2、from module_name import *    导入模块文件内的所有代码,调用时直接用模块内的变量名称。如果当前文件内有变量和模块文件内的变量同名的话,就近执行,哪个最近解释的就执行哪个。

3、from module import func as func_module   使用as关键字区分当前文件内的变量和模块文件内的变量。

4、from module import func as func_module1,func2 as func_module2

推荐1、3、4方法。

import module_name本质:把模块文件运行一遍,然后把模块文件内容赋值给模块文件名。调用格式:module_name.variable_name

from module import func本质:解释模块中的func。调用格式:variable_name

导入包:import package_name

当前文件与package文件同级。

导入包的本质:运行package目录下的__init__.py文件。


模块分类:

1、标准库,Python自带

2、开源模块,第三方模块

3、自定义模块


time模块:

时间戳:从1970年1月1日零时起至今的秒数;

格式化时间:字符串表示时间,可以自定义格式;

%Y:年

%m:月

%d:日

%A:星期几

%H:时

%M:分

%S:秒

struct_time:元组方式表示时间,有9个元素

不同时间表示方法之间的转化:

 time.time()

返回时间戳模式的时间:

1538570674.6409438


time.localtime()

返回元组形式的本地时间:

time.struct_time(tm_year=2018, tm_mon=10, tm_mday=3, tm_hour=20, tm_min=45, tm_sec=45, tm_wday=2, tm_yday=276, tm_isdst=0)


time.gmtime()

返回元组形式的标准时间:

time.struct_time(tm_year=2018, tm_mon=10, tm_mday=3, tm_hour=12, tm_min=45, tm_sec=55, tm_wday=2, tm_yday=276, tm_isdst=0)


random模块:

import random
print(random.random())      #随机产生0-1之间的浮点数
print(random.uniform(5,10))     #随机产生5-10之间的浮点数
print(random.randrange(0,101,5))        #随机产生0-101且步长为5的整数
print(random.choice(range(0,101,5)))    #随机产生0-101且步长为5的整数
print(random.randint(0,10))     #随机产生0-10的整数,包括10
print(random.choice('abcdefg123456789'))    #从序列中随机选择一个元素
print(random.sample([1,2,3,4,5,6],2))       #从样本中随机选择2个元素,输出为list
items=[1,2,3,4,5,6]
random.shuffle(items)       #打乱items的排列顺序,改变items。
print(items)

其中,random.choice()和random.sample()参数均是序列。序列可以是list,tuple,string,不可以是字典。


OS模块:

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ('.')
os.pardir  获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("oldname","newname")  重命名文件/目录
os.stat('path/filename')  获取文件/目录信息
os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep    输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep    输出用于分割文件路径的字符串
os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command")  运行shell命令,直接显示
os.environ  获取系统环境变量
os.path.abspath(path)  返回path规范化的绝对路径
os.path.split(path)  将path分割成目录和文件名二元组返回
os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)  如果path是绝对路径,返回True
os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间

sys模块:

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称

json和pickle模块:

用于序列化的两个模块

  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load


shelve模块:

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。

import shelve
d = shelve.open('shelve_test')  # 打开一个文件
name = ["alex", "rain", "test"]
d["test"] = name  # 持久化列表
d.close()

读取数据:

import shelve
d=shelve.open("shelve_test")
print(d.get('test'))
输出:
['alex', 'rain', 'test']


XML模块:

现有xml文件内容如下:

<?xml version="1.0"?>
<data><country name="Liechtenstein"><rank updated="yes">2</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank updated="yes">5</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank updated="yes">69</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country>
</data>

从此文件中获取信息:

import xml.etree.ElementTree as ET
tree = ET.parse("xmltest.xml")        #xmltest.xml是xml文件名
root = tree.getroot()
print(root.tag)
# 遍历xml文档
for child in root:print(child.tag, child.attrib)for i in child:print(i.tag, i.text,i.attrib)
# 只遍历year 节点
for node in root.iter('year'):print(node.tag, node.text)

修改xml文件:

import xml.etree.ElementTree as ET
tree = ET.parse("xmltest.xml")
root = tree.getroot()
# 修改
for node in root.iter('year'):new_year = int(node.text) + 1node.text = str(new_year)node.set("updated", "yes")
tree.write("xmltest.xml")
# 删除node
for country in root.findall('country'):rank = int(country.find('rank').text)if rank > 50:root.remove(country)
tree.write('output.xml')

创建xml文件:

import xml.etree.ElementTree as ET
new_xml = ET.Element("people")
person1 = ET.SubElement(new_xml, "person1", attrib={"enrolled": "yes"})
person1.text="刚田武"
age = ET.SubElement(person1, "age", attrib={"checked": "no"})
age.text = '23'
sex = ET.SubElement(person1, "sex")
sex.text="男"
person2 = ET.SubElement(new_xml, "person2", attrib={"enrolled": "no"})
person2.text="猪刚鬣"
age = ET.SubElement(person2, "age")
age.text = '22'
sex = ET.SubElement(person2, "sex")
sex.text="男"et = ET.ElementTree(new_xml)  # 生成文档对象
et.write("朱二娃和基佬强.xml", encoding="utf-8", xml_declaration=True)

生成的xml文件不会自动换行。

转载于:https://www.cnblogs.com/zhhy236400/p/9735972.html

Python学习week5相关推荐

  1. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  2. pygame是python的一个库吗,python学习pygame,,基本库导入impor

    python学习pygame,,基本库导入impor 基本库导入 import pygame import sys from pygame.locals import * 初始化 pygame.ini ...

  3. python科学计数法转换_对比Python学习Go 基本数据结构

    公众号文章不方便更新,可关注底部「阅读原文」博客,文章随时更新. 本篇是「对比 Python 学习 Go」[1] 系列的第三篇,本篇文章我们来看下 Go 的基本数据结构.Go 的环境搭建,可参考之前的 ...

  4. python学习------tab补全

    python学习------tab补全   python也可以进行tab键补全 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/usr/bin/env  ...

  5. Python学习day5作业-ATM和购物商城

    Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆, ...

  6. Python学习系列(六)(模块)

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  7. 最新Python学习项目Top10!

    作者 | Mybridge 译者 | Linstancy 整理 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近1000个Python 学习项目进行了排名,并挑选出热度前10的项 ...

  8. 200页!分享珍藏很久的Python学习知识手册(附链接)

    这是之前入门学习Python时候的学习资料,非常全面,从Python基础.到web开发.数据分析.机器学习.深度学习.金融量化统统都有,该手册是HTML版本,左侧是目录,可以点击,右侧是对目录知识点的 ...

  9. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  10. Python学习01 Hello World

    Python学习之Hello World 准备工作 去官网http://www.python.org/ 下载python的安装包: http://www.python.org/download/ 当前 ...

最新文章

  1. Java企业微信开发_00_源码及资源汇总贴
  2. 强化学习—— TD算法(Sarsa算法+Q-learning算法)
  3. python爬虫实践 —— 一、入门篇
  4. linux-shell——02
  5. [Leedcode][JAVA][第837题][新21点][动态规划][数学]
  6. python中mat函数_Python中flatten( )函数及函数用法详解
  7. python的字符串包括哪些_python怎么判断字符串是否包含某些字符
  8. 自然语言处理工具HanLP被收录中国大数据产业发展的创新技术新书《数据之翼》...
  9. JAVA中的枚举使用总结
  10. Ubuntu安装显卡驱动
  11. 全文专利 PDF 免费下载
  12. JConsole使用教程
  13. 三、三个路由器间的互联
  14. win7桌面不显示我的计算机名,win7系统桌面没有显示我的电脑图标的操作技巧
  15. 04_Linux ARM架构-部署kibana服务-银河麒麟V10 操作系统
  16. 相机误删照片恢复的步骤是什么?仅需3步,圆满解决
  17. java基于Springboot+vue的宠物销售商城网站 elementui
  18. csv加header python_用python处理csv格式文件
  19. 音频之WAV格式编码解析
  20. ISO文件解析(转)

热门文章

  1. csma研究背景_以太网CSMA_CD工作原理研究
  2. 经典Bug永流传---每周一“虫”(二十一)
  3. 【白皮书】以太坊 (Ethereum ):下一代智能合约和去中心化应用平台
  4. Linux基础-进程管理
  5. TestFlight iOS 平台 App内测 工具使用
  6. QT 即时聊天软件(一)
  7. 在OpenJweb平台中实现微信刷卡支付(被动扫码)
  8. 【英语魔法俱乐部——读书笔记】 1 初级句型-简单句(Simple Sentences)
  9. Excel快捷键大全,没有最全,只有更全!
  10. 【软件定义汽车】【场景篇】智能座舱