1. 模块

  • 告诉解释器到哪里查找模块的位置:比如sys.path.append('C:/python')
  • 导入模块时:其所在目录中除源代码文件外,还新建了一个名为__pycache__ 的子目录,这个目录包含处理后的文件,若.py文件没变化,则不会重建,变化了则重建
  • 模块只导入一次,避免两个模块导入对方时的无穷递归
  • 若需要多次导入:import importlib,hello = importlib.reload(hello),用reload加载新版本
  • 在主程序中(包括解释器的交互式提示符),变量__name的值是'__main';导入的模块中,这个变量被设置为该模块的名称
  • import sys, pprint,pprint.pprint(sys.path)可以友好的打印,常把模块放在site-packages下
  • 比sys更常见的做法:修改PYTHONPATH比如export PYTHONPATH=$PYTHONPATH:~/python,添加到主目录中的.bashrc文件,可对所有启动的shell都执行这个命令

2. 包

  • 1.组织模块,编成包,2.目录必须包含文件__init__.py,from . import 模块名 的方式注册这个模块

3. 模块内容查询

  • 使用dir:列出对象的所有属性(对于模块,它列出所有的函数、类、变量等) [n for n in dir(copy) if not n.startswith('_')]
  • __all__:定义模块的公有接口,否则会在以import *方式导入时,导入所有不以下划线打头的全局名称!!!
  • help(copy.copy)
  • __doc__:文档开头对函数进行说明的字符串
  • __file__:有时需要使用源代码时,可以查看模块的完整路径

4. 常用模块

4.1 sys:与python解释器相关

  • sys.argv:包含传递给python解释器的参数,包括脚本名
  • sys.exit:退出当前程序
  • sys.modules:字典sys.modules对于加载模块起到了缓冲的作用。当某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。
  • sys.path
  • sys.plantform:运行解释器的平台名称
  • sys.stdin(和input差不多,input还可以加说明文字、sys.stdoutsys.stderr是类似文件的流对象
#input
n = int(input('Please input a number:\n'))
sn = list(map(int,input('Please input some numbers:\n').split()))#int(1),int(2)...再合成list
print(n)#1
print(sn,'\n')#[1,2,3] #sys.stdin
print('Please input a number:')
n = int(sys.stdin.readline().strip('\n')) #strip('\n')表示以\n分隔,否则输出是“字符串+\n”的形式
print('Please input some numbers:')
sn = sys.stdin.readline().strip()#若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
if sn == '':
break
sn = list(map(int,sn.split())) #如果要强制转换成int等类型,可以调用map()函数。
print(n)
print(sn,'\n')
复制代码

4.2 os:能够访问多个操作系统服务

  • os.environ():环境变量,要访问环境变量PYTHONPATH,可使用表达式os.environ['PYTHONPATH']
  • os.system():用于运行外部程序
  • os.sep():是用于路径名中的分隔符
  • os.pathsep():来组合多条路径
  • os.linesep():是用于文本文件中的行分隔符
  • os.rename(旧,新)
  • os.remove()
  • os.listdir()
  • os.mkdir()
  • os.rmdir()
  • os.getcwd()
  • os.chdir()
  • os.path.isdir()

4.3 fileinput:如何读写文件

(没怎么用过,先写上,遇到了再详细看)

  • python some_script.py file1.txt file2.txt file3.txt:依次迭代文件file1.txt到file3.txt中的行
  • cat file.txt | python some_script.py

常见函数:

  • fileinput.input:返回一个可在for循环中进行迭代的对象
  • fileinput.filename:返回当前文件(即当前处理的行所属文件)的文件名
  • fileinput.lineno:返回当前行的编号
  • fileinput.filelineno:返回当前行在当前文件中的行号
  • fileinput.isfirstline:当前行为当前文件中的第一行时返回True
  • fileinput.isstdin:在当前文件为sys.stdin时返回True
  • fileinput.nextfile:关闭当前文件并跳到下一个文件
  • fileinput.close:关闭整个文件链并结束迭代。
  • 举例:在行号后面添加行号

4.4 heapq:堆中常用模块

  • 创建堆:(1)用heappush创建(2)heapify得到合法堆
from heapq import *
from random import shuffle
data = list(range(10))
shuffle(data)
#创建堆:(1)用heappush创建
heap = []
for n in data:
heappush(heap, n)#添加
heappop(heap)#弹出堆顶元素
#(2)heapify得到合法堆
heapreplace(heap, 0.5)#弹出最小元素,且压入新元素,相当于前两个的整合,但效率更高
#nlargest(n, iter),nsmallest(n, iter),找出可迭代对象iter中最大和最小的n个元素 复制代码

4.5 双端队列

from collections import deque
q = deque(range(5))
q.append(5)
q.appendleft(6)
q.pop()
q.popleft()
q.rotate(3)
q.rotate(-1)
#此外还有extend,extendleft
复制代码

4.6 time

  • time.asctime():将时间元组转换为字符串
  • time.time():返回当前的国际标准时间,以从新纪元开始的秒数表示

4.7 random

  • random.random:返回一个0~1(含)的伪随机数
  • random.getrandbits:以一个整数的方式返回指定数量的二进制位。
  • random.uniform:回一个a~b(含)的随机(均匀分布 的)实数。例如,如果你需要一个随机角度,可使用uniform(0, 360)
  • random.randrange:是生成随机整数的标准函数
  • random.choice:从给定序列中随机(均匀)地选择一个元素
  • random.sample:从给定序列中随机(均匀)地选择指定数量的元素,并确保所选择元素 的值各不相同

4.8 shelve和json

4.9 re

4.9.1 正则表达式

  • 通配符:句点与除换行符外的其他字符都匹配
  • 对特殊字符进行转义:'python\.org‘。两层转义:解释器执行的转义和模块re执行的转义
  • 字符集:例如'[a-zA-Z0-9]'与大写字母、小写字母和 数字都匹配。请注意,字符集只能匹配一个字符
  • 指定排除字符集:'abc'与除a、b和c外的其他任何字符 都匹配。
  • 二选一和子模式:'python|perl','p(ython|erl)'
  • 问号表示可选的子模式可出现一次,也可不出现
  • (pattern)*:pattern可重复0、1或多次。
  • (pattern)+:pattern可重复1或多次。
  • (pattern){m,n}:模式可从父m~n次

4.9.2 一些函数

  • compile(pattern[, flags]):根据包含正则表达式的字符串创建模式对象
  • search(pattern, string[, flags]):在字符串中查找模式
  • match(pattern, string[, flags]):在字符串开头匹配模式
  • split(pattern, string[, maxsplit=0]):根据模式来分割字符串
  • findall(pattern, string):返回一个列表,其中包含字符串中所有与模式匹配的子串
  • sub(pat, repl, string[, count=0]):将字符串中与模式pat匹配的子串都替换为repl
  • escape(string):对字符串中所有的正则表达式特殊字符都进行转义

5.操作文件的函数/方法

open函数负责打开文件(f = open("文件名","打开方式")),返回文件操作对象f,打开方式有:只读r,只写w,追加a等
read/write/close需要文件对象f来调用

Python基础学习之常用模块的更多相关文章

  1. 第六章:Python基础の反射与常用模块解密

    本课主题 反射 Mapping 介绍和操作实战 模块介绍和操作实战 random 模块 time 和 datetime 模块 logging 模块 sys 模块 os 模块 hashlib 模块 re ...

  2. python基础学习十 logging模块详细使用【转载】

    很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...

  3. python基础学习笔记——collections模块

    在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...

  4. Python基础学习:operator模块

    operator——函数的标准操作 转自:https://blog.csdn.net/zhtysw/article/details/80510113 代码资源:Lib/operator.py oper ...

  5. python基础学习笔记——time模块

    time模块 time翻译过来就是时间,有我们其实在之前编程的时候有用到过. #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取 ...

  6. python基础学习笔记——os模块

    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os. ...

  7. Python基础学习----字典常用操作

    字典的常见操作: # 字典: # 格式:{键值对,键值对} dict_demo={"name":"bai-boy","age":17} # ...

  8. Python入门基础学习(时间模块,随机模块)

    Python基础学习笔记(六) time模块: 时间的三种表示方法: 1.格式化字符串 2.时间戳 用来表示和1970年的时间间隔,单位为s 3.元组 struct_time 9个元素 time的st ...

  9. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

随机推荐

  1. .NET Standard 系列

    .NET Standard 是一套正式的 .NET API 规范,有望在所有 .NET 实现中推出. 推出 .NET Standard 的背后动机是要提高 .NET 生态系统中的一致性. ECMA 3 ...

  2. nuget使用经验:复杂依赖关系下的包版本问题

    背景 之前同事问到过1个关于nuget包被多层引用后,最终生效的版本的问题.当时通过在项目中重新安装了一次nuget包解决了. 现在来重新复盘一下当时的场景,顺便把这种场景下nuget处理逻辑分享给大 ...

  3. 5-kunernetes资源调度

    1.创建一个pod的工作流程 master节点组件 1.apiserver --> etcd 2.scheduler 3.controller-manager node节点有那些组件 1.kub ...

  4. iptables 和firewalld 区别

    在RHEL7里有几种防火墙共存:firewalld.iptables.ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等. fir ...

  5. 如何让矢量瓦片配图神器maputnik支持 geoserver

    关键词:maputnik.geoserver.矢量地图.矢量瓦片.mapbox.mapboxgl.地图配图.地图配色 一直想搞一个类似百度.高德地图那样的矢量地图配图工具 百度个性化地图配图工具: 高 ...

  6. 转一个veth的文章

    这篇写的很好,清晰明白,保存一下https://www.cnblogs.com/bakari/p/10613710.html

  7. spring 源码构建

    参照这里(按照下面链接一路绿灯) https://blog.csdn.net/chengqiuming/article/details/102331033 1.安装配置gradle环境 1).  配置 ...

  8. Excel中外部数据链接无法删除的解决方法【转】

    [摘要] 当Excel中公式引用了外部数据,每次打开时,总是自动弹出自动更新链接的对话框.如何找到这些链接?有没有办法实现断开原有链接,而保持数值不变? 有客户反应,当Excel无法链接到外部数据后, ...

  9. 标签中colgroup的属性

    如需对全部列应用样式,<colgroup> 标签很有用,这样就不需要对各个单元和各行重复应用样式了. <colgroup> 标签只能在 table 元素中使用. 可选的属性 属 ...

  10. Anderson《空气动力学基础》5th读书笔记 第1记——流动相似性

    在飞机真正上天之前,我们常常需要制作出缩小版的模型放在风洞中吹呀吹,尽可能地模拟真实飞行中的参数,这时我们就需要实现流动相似性,这便是本记要讲的. 文章目录 一.流动相似性的标准 二.流动相似性的应用 ...