模块的基础

模块的定义

一个模块就是以.py结尾的python 文件,用来从逻辑上组织python代码。注意,模块名和变量名一样开头不能用数字,可以是双下划线和字母。

为什么要用模块? 将一些复杂的需要重复使用的功能进行分类,分别放到一个py文件中,需要调用的时候直接拿来用就可以了。

模块的导入方法

  1. ##模块导入的方法
  2. 1 import 模块名 可以导入多个模块,中间用逗号,但是不建议这么用。
  3.  
  4.            适用范围:需要导入一个模块中的多个函数变量时。
  5.  
  6. 2.from 模块名 import 函数 可以跟多个函数
  7.  
  8.           适用范围:需要导入一个模块的一个函数时,这样比上个方法,节省内存。
  9.  
  10. 3. from 模块名 import * 导入这个模块的所有函数,变量,这个方法不建议使用,如果有重名的就会覆盖。它一般和__all__配合使用。__all__,是一个列表,他会把,*中的所有的变量名,方法名放进去。(这个了解一下就可以了)。
  11.  
  12. 4. from 模块名 import 函数 as 另一个函数名 给函数重新命名 注意:当重新命名后,原函数名不能使用了。
  13.  
  14.           使用范围:1.函数名特别长,2,模块函数名和程序中的函数名重名是。
  15.  
  16. 5.__import__: import语句同样的功能,但__import__是一个函数,并且只接收字符串作为参数,所以它的作用就可想而知了。其实import语句就是调用这个函数进行导入工作的,import sys <==>sys = __import__('sys')

import 的本质是:把要导入的模块中的内容运行了一遍。

from module import function 的本质:只把该模块中的该函数运行了一遍,这样就大大的提高了效率。

介绍下sys.modules ,首先来说sys.modules是一个全局字典.python解释器启动的时候会把一些模块名加载进来放到字典中,注意这里加载的只是模块的名字,而不是模块,只有你import的时候才会加载模块(这里有个例外内建模块builtins中的内容可以直接使用),还要注意一点,并不是把所有的内建的模块都加载进来,而是一部分,比如说re模块就没有加载进来,time模块就就被加载进来了。

  1. sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules都将记录这些模块。
    字典sys.modules对于加载模块起到了缓冲的作用。当某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。

如果你想导入re模块其实他正确的搜索顺序是这样的:首先在sys.modules中找,没有找到,然后再去sys.path(sys.path是python的搜索模块的路径集,是一个list)中找,先找列表中的第一个路径,这个路径就是保存着的你自己写的模块,如果这时候正好你也写了一个re模块,它就会先执行你写的这个RE模块,而不是真正的RE模块,这就是为什么你自己的模块的名字不能和内建的模块名字相同的原因。python内置的模块放在了python36目录下Lib中。第三方模块放在python36目录下Lib中的site-packages 。

介绍下sys.path,   sys.path是python的搜索模块的路径集,是一个列表

  1. ['C:\\Users\\stickerzhang\\PycharmProjects\\untitled3\\算法',
  2.  
  3. 'C:\\Users\\stickerzhang\\PycharmProjects\\untitled3\\算法',
  4.  
  5. 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip',
  6.  
  7. 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\DLLs',
    'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib',
  8.  
  9. 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36',
  10.  
  11. 'C:\\Users\\stickerzhang\\AppData\\Roaming\\Python\\Python36\\site-packages',
    'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages']

可以在python 环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失!

解决方案点击

介绍下内建模块builtins(python3) 在python2中是__builtin__  注意在python3中没有__builtins__模块

Python解释器启动时会自动执行:

  1. from builtins import *

这就是为什么内建函数不用导入就可以使用的原因吧.

这里边有149个内容

包含7个模块相关

  1. '__build_class__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__'

4个特殊名字

欢迎界面里的copyright,credits,help,license:

6个内建常数

  1. 'True', 'False', 'None', 'Ellipsis', '__debug__', 'NotImplemented'

68个内建函数

61+3个异常

https://docs.python.org/3/library/exceptions.html#exception-hierarchy

模块导入的顺序:内置模块先从sys.modules 中寻找,找不到再从sys.path给的路经依次中寻找。

所有的内置函数都放在了builtints(python3)模块中,在python解释器启动时,这个模块就被加载过了。

pyc:是这个代码编译后的文件当一个py文件被当做模块导入时会生成一个pyc文件,这个文件 把代码编译成字节码,再次运行该模块时会直接运行pyc文件而不需要重新在编译,这样就大大提高加载模块的速度,强调强调强调:提高的是加载速度而绝非运行速度。

我们推荐所有的模块应该这样导入:

python标准库模块

python第三方模块

python自己写的模块

需要特别注意的是:我们自定义的模块名不应该与系统内置模块重名。虽然每次都说,但是仍然会有人不停的犯错。

if __name__ == "__main__:"

在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句。那添加这个判断的目的何在?

在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是否为主程序而定义变量__name__的值为__main__还是模块名。因此,该判断语句为真的时候,说明当前运行的脚本为主程序,而非所引用的模块。这在当你想要运行一些只有在将模块当做主程序运行时而非当做模块引用时才执行的命令,只要将它们放到if __name__ == "__main__:"判断语句之后就可以了。

举个例子,比如说你要在text2中引用text1模块,在text1模块中写入a="hello worlf">>> print(a),然后你导入text1,然后运行text2,这时候你会发现,我还没有调用text1.a,它就会打印hello Word,但是你不想这样啊,你想什么时候调用text1.a才会打印helloWord,这该怎么办?

方法:在text1程序中,写入if __name__ == "__main__:",然后把print(a),放入这条件语句后,就可以 了。这样我只有运行text1程序的时候才会直接打印helloWord,导入text1程序时,只有调用text1 .a 才会打印helloWord。你会问为什么会这样?

因为当你想要运行你当前的模块而非引用的模块时,__name__的值就是"__main__",当你在另外一个模块中导入该模块时该模块中的__name__值就变为该模块的模块名了。

举个列子:假设你在text1中写入print(__name__)>>>你会得到 "__main__".  然后你在text2文件中导入text1模块,运行text2文件,你会得到>>>text2,这个模块的文件名,这就是__name__的作用。

说了这么多废话,官方这样解释:确保服务器只会在该脚本被python解释器直接执行的时候,才会被运行,而不是作为模块导入的时候.

time模块

表示时间的三种方式

在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:

(1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

(2)格式化的时间字符串(Format String): ‘1999-12-06’  注意这个的数据类型是字符串

  1. %y 两位数的年份表示(00-99
  2. %Y 四位数的年份表示(000-9999
  3. %m 月份(01-12
  4. %d 月内中的一天(0-31
  5. %H 24小时制小时数(0-23
  6. %I 12小时制小时数(01-12
  7. %M 分钟数(00=59
  8. %S 秒(00-59
  9. %a 本地简化星期名称
  10. %A 本地完整星期名称
  11. %b 本地简化的月份名称
  12. %B 本地完整的月份名称
  13. %c 本地相应的日期表示和时间表示
  14. %j 年内的一天(001-366
  15. %p 本地A.M.或P.M.的等价符
  16. %U 一年中的星期数(00-53)星期天为星期的开始
  17. %w 星期(0-6),星期天为星期的开始
  18. %W 一年中的星期数(00-53)星期一为星期的开始
  19. %x 本地相应的日期表示
  20. %X 本地相应的时间表示
  21. %Z 当前时区的名称
  22. %% %号本身
  23.  
  24. python中时间日期格式化符号:

3)元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

索引(Index) 属性(Attribute) 值(Values)
0 tm_year(年) 比如2011
1 tm_mon(月) 1 - 12
2 tm_mday(日) 1 - 31
3 tm_hour(时) 0 - 23
4 tm_min(分) 0 - 59
5 tm_sec(秒) 0 - 60
6 tm_wday(weekday) 0 - 6(0表示周一)
7 tm_yday(一年中的第几天) 1 - 366
8 tm_isdst(是否是夏令时) 默认为0

首先,我们先导入time模块,来认识一下python中表示时间的几种格式:

  1. #导入时间模块
  2. >>>import time
  3.  
  4. #时间戳
  5. >>>time.time()
  6. 1500875844.800804
  7.  
  8. #时间字符串
  9. >>>time.strftime("%Y-%m-%d %X")
  10. '2017-07-24 13:54:37'
  11. >>>time.strftime("%Y-%m-%d %H-%M-%S")
  12. '2017-07-24 13-55-04'
  13.  
  14. #时间元组:localtime将一个时间戳转换为当前时区的struct_time
  15. time.localtime()
  16. time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24,
  17.           tm_hour=13, tm_min=59, tm_sec=37,
  18. tm_wday=0, tm_yday=205, tm_isdst=0)

总结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

时间戳要转换成时间字符串必须经过时间元组的转化       timestamp----->struct_time---->format string

  1. #时间戳-->结构化时间
  2. #time.gmtime(时间戳) #UTC时间,与英国伦敦当地时间一致
  3. #time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间
  4. >>>time.gmtime(1500000000)
  5. time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
  6. >>>time.localtime(1500000000)
  7. time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
  8.  
  9. #结构化时间-->时间戳 
  10. #time.mktime(结构化时间)
  11. >>>time_tuple = time.localtime(1500000000)
  12. >>>time.mktime(time_tuple)
  13. 1500000000.0
  1. #结构化时间-->字符串时间
  2. #time.strftime("格式定义","结构化时间") 结构化时间参数若不传,则显示当前时间
  3. >>>time.strftime("%Y-%m-%d %X")
  4. '2017-07-24 14:55:36'
  5. >>>time.strftime("%Y-%m-%d",time.localtime(1500000000))
  6. '2017-07-14'
  7.  
  8. #字符串时间-->结构化时间
  9. #time.strptime(时间字符串,字符串对应格式)
  10. >>>time.strptime("2017-03-16","%Y-%m-%d")
  11. time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)
  12. >>>time.strptime("07/24/2017","%m/%d/%Y")
  13. time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)

datetime模块

datetime是Python处理日期和时间的标准库。

它包含了五个类:date,time,datetime,timedelta, tzinfo

date

date 类有三部分组成

date(year,month,day)

你也可以用这种方法来获取年

date实例化对象中包含的方法与属性

1、用于日期比较大小的方法
方法名 方法说明 用法
__eq__(…) 等于(x==y) x.__eq__(y)
__ge__(…) 大于等于(x>=y) x.__ge__(y)
__gt__(…) 大于(x>y) x.__gt__(y)
__le__(…) 小于等于(x<=y) x.__le__(y)
__lt__(…) 小于(x x.__lt__(y)
__ne__(…) 不等于(x!=y) x.__ne__(y)

以上方法的返回值为True\False

  1. >>> a=datetime.date(2017,3,1)
  2. >>> b=datetime.date(2017,3,15)
  3. >>> a.__eq__(b)
  4. False
  5. >>> a.__ge__(b)
  6. False
  7. >>> a.__gt__(b)
  8. False
  9. >>> a.__le__(b)
  10. True
  11. >>> a.__lt__(b)
  12. True
  13. >>> a.__ne__(b)
  14. True
2、获得二个日期相差多少天
  1. >>>t
  2. datetime.date(2018, 3, 30)
  3. >>>b=datetime.date(2018,3,25)
  4. >>>t.__sub__(b)
  5. datetime.timedelta(5) #得到的是timedelta数据类型
  6. >>>t.__sub__(b).days #如果想要获取两个日期相差多少天用这个方法
  7. 5

timedelta

timedelta是datetime中的一个对象,该对象表示两个时间的差值

举例计算当前时间三天后的时间

  1. import datetime
  2. t=datetime.datetime.now()
  3. print('当前的时间%s'%t)
  4.  
  5. after=t+datetime.timedelta(days=3)
  6. print('三天后的时间%s'%after)

结果:

  1. 当前的时间2018-11-15 10:24:18.626596
  2. 三天后的时间2018-11-18 10:24:18.626596

replace

我们知道timedelta只能计算的范围是周,天,小时,分钟,秒,,但是我要计算几年后,几月前怎么办呢,这时候replace就出来了

  1. # 当前为2020计算去年
  2. dt = datetime.datetime.now()
  3. dt = dt.replace(year=dt.year - 1).strftime("%Y")
  4. print(dt)
  5.  
  6. #结果
  7.  
  8. 2019

日期的字符串输出

如果你想将日期对象转化为字符串,可以用到__format__(...)方法以指定格式进行日期输出

  1. >>>t
  2. datetime.date(2018, 3, 30)
  3. >>>t.__format__("%Y-%m-%d")
  4. '2018-03-30'
  5. >>>type(t.__format__("%Y-%m-%d"))
  6. <class 'str'>

你还可以用strftime这个方法来转化为字符串

  1. f>>>t
  2. datetime.date(2018, 3, 30)
  3. >>>t.strftime("%Y-%m-%d"),type(t.strftime("%Y-%m-%d"))
  4. '2018-03-30', <class 'str'>

如果只是相简单的获得日期的字符串,则使用__str__()

  1. >>>t
  2. datetime.date(2018, 3, 30)
  3. >>>>t.__str__()
  4. '2018-03-30' #注意只能显示这个-的形式

os模块

os模块主要是用于对操作系统的操作

__file__:当前文件的绝对路径

  1. print(type(__file__),__file__)

结果:

  1. <class 'str'> C:/Users/stickerzhang/PycharmProjects/untitled3/day1/text.py

os.path模块

  1. #以下内容都是os.path子模块中的内容
  2.  
  3. #abspath() 将相对路径转化为绝对路径或者是得到当前文件的绝对目录
  4. path = './boys'#相对
  5. result = os.path.abspath(path)
  6. print(result)
  7.  
  8. #dirname() 获取完整路径当中的目录部分 也就是当前文件的目录,abspath的父目录 & basename()获取完整路径当中的文件部分
  9. path = '/home/sy/boys.py'
  10. result = os.path.dirname(path)
  11. print(result) # /home/sy
  12.  
  13. result = os.path.basename(path)
  14. print(result) # boys.py
  15.  
  16. #split() 将一个完整的路径切割成目录部分和文件部分,用元组表示
  17. path = '/home/sy/boys.py'
  18. result = os.path.split(path)
  19. print(result) # ('/home/sy', 'boys.py')
  20.  
  21. #join() 将2个路径合并成一个
  22. var1 = '/home/sy/'
  23. var2 = '000.py'
  24. result = os.path.join(var1,var2)
  25. print(result) # /home/sy/000.py
  26.  
  27. #splitext() 将一个路径切割成文件后缀和其他两个部分,主要用于获取文件的后缀
  28. path = '/home/sy/000.py'
  29. result = os.path.splitext(path)
  30. print(result) #('/home/sy/000', '.py')
  31.  
  32. #getsize() 获取文件的大小
  33. #path = '/home/sy/000.py'
  34. #result = os.path.getsize(path)
  35. #print(result)
  36.  
  37. #isfile() 检测是否是文件
  38. path = '/home/sy/000.py'
  39. result = os.path.isfile(path)
  40. print(result)
  41.  
  42. #isdir() 检测是否是文件夹
  43. result = os.path.isdir(path)
  44. print(result)
  45.  
  46. #islink() 检测是否是链接
  47. path = '/initrd.img.old'
  48. result = os.path.islink(path)
  49. print(result)
  50.  
  51. #getctime() 获取文件的创建时间 get create time
  52. #getmtime() 获取文件的修改时间 get modify time
  53. #getatime() 获取文件的访问时间 get active time
  54.  
  55. import time
  56.  
  57. filepath = '/home/sy/下载/chls'
  58.  
  59. result = os.path.getctime(filepath)
  60. print(time.ctime(result))
  61.  
  62. result = os.path.getmtime(filepath)
  63. print(time.ctime(result))
  64.  
  65. result = os.path.getatime(filepath)
  66. print(time.ctime(result))
  67.  
  68. #exists() 检测某个路径是否真实存在
  69. filepath = '/home/sy/下载/chls'
  70. result = os.path.exists(filepath)
  71. print(result)
  72.  
  73. #isabs() 检测一个路径是否是绝对路径
  74. path = '/boys'
  75. result = os.path.isabs(path)
  76. print(result)
  77.  
  78. #samefile() 检测2个路径是否是同一个文件
  79. path1 = '/home/sy/下载/001'
  80. path2 = '../../../下载/001'
  81. result = os.path.samefile(path1,path2)
  82. print(result)

os.environ

  1. #os.environ 用于获取和设置系统环境变量的内置值
  2. import os
  3. #获取系统环境变量 getenv() 效果
  4. print(os.environ['PATH'])
  5.  
  6. #设置系统环境变量 putenv()
  7. os.environ['PATH'] += ':/home/sy/下载'
  8. os.system('chls')

os其他的一些命令

  1. #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)
  2. result = os.getcwd()
  3. print(result) #C:\Users\stickerzhang\PycharmProjects\untitled3\text1\tt
  4.  
  5. #chdir()改变当前工作目录
  6. os.chdir('/home/sy')
  7. result = os.getcwd()
  8. print(result)
  9.  
  10. open('02.txt','w')
  11.  
  12. #操作时如果书写完整的路径则不需要考虑默认工作目录的问题,按照实际书写路径操作
  13. open('/home/sy/下载/02.txt','w')
  14.  
  15. #listdir() 获取指定文件夹中所有内容的名称列表
  16. result = os.listdir('/home/sy')
  17. print(result)
  18.  
  19. #mkdir() 创建文件夹
  20. #os.mkdir('girls')
  21. #os.mkdir('boys',0o777)
  22.  
  23. #makedirs() 递归创建文件夹
  24. #os.makedirs('/home/sy/a/b/c/d')
  25.  
  26. #rmdir() 删除空目录
  27. #os.rmdir('girls')
  28.  
  29. #removedirs 递归删除文件夹 必须都是空目录
  30. #os.removedirs('/home/sy/a/b/c/d')
  31.  
  32. #rename() 文件或文件夹重命名
  33. #os.rename('/home/sy/a','/home/sy/alibaba'
  34. #os.rename('02.txt','002.txt')
  35.  
  36. #stat() 获取文件或者文件夹的信息
  37. #result = os.stat('/home/sy/PycharmProject/Python3/10.27/01.py)
  38. #print(result)
  39.  
  40. #system() 执行系统命令(危险函数)
  41. #result = os.system('ls -al') #获取隐藏文件
  42. #print(result)
  43.  
  44. #环境变量
  45. '''
  46. 环境变量就是一些命令的集合
  47. 操作系统的环境变量就是操作系统在执行系统命令时搜索命令的目录的集合
  48. '''
  49. #getenv() 获取系统的环境变量
  50. result = os.getenv('PATH')
  51. print(result.split(':')) #是一个列表
  52.  
  53. #putenv() 将一个目录添加到环境变量中(临时增加仅对当前脚本有效)
  54. #os.putenv('PATH','/home/sy/下载')
  55. #os.system('syls')
  56.  
  57. #exit() 退出终端的命令
  58.  
  59. #os模块中的常用值
  60. #curdir 表示当前文件夹 .表示当前文件夹 一般情况下可以省略
  61. print(os.curdir)
  62.  
  63. #pardir 表示上一层文件夹 ..表示上一层文件夹 不可省略!
  64. print(os.pardir)
  65.  
  66. #os.mkdir('../../../man')#相对路径 从当前目录开始查找
  67. #os.mkdir('/home/sy/man1')#绝对路径 从根目录开始查找
  68.  
  69. #name 获取代表操作系统的名称字符串
  70. print(os.name) #posix -> linux或者unix系统 nt -> window系统
  71.  
  72. #sep 获取系统路径间隔符号 window ->\ linux ->/
  73. print(os.sep)
  74.  
  75. #extsep 获取文件名称和后缀之间的间隔符号 window & linux -> .
  76. print(os.extsep)
  77.  
  78. #linesep 获取操作系统的换行符号 window -> \r\n linux/unix -> \n
  79. print(repr(os.linesep))

 os模块遇到的坑

不要这样用

  1. path = os.path.dirname(__file__)
  2. print(path)
  3.  
  4. #虽然这样能打印出结果

但是换成这种情况就不好使了:

  1. import os
  2.  
  3. def test():
  4. print(os.path.dirname(__file__))
  5.  
  6. test()
  7.  
  8. #无结果
  1. #应该这样写
  2. import os
  3.  
  4. def test():
  5. print(os.path.dirname(os.path.realpath(__file__)))
  6.  
  7. test()

os.path.abspath()和os.path.realpath() 区别?

  1. #他们俩都返回绝对路径,不同的是:realpath可以返回带有软连接的,连接真正的文件的路径,这个一般用不到

os.system():

可以将字符串转换成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程

  1. import os
  2.  
  3. #使用它执行多条命令时:可以用分号(;)隔开,也可以用&&隔开
  4. os.system("mkdir aa;cd aa;touch a.txt")

sys模块

sys模块主要是和解释器有关的

这里主要记住这几个参数

sys.path 返回一个列表,列表中有模块的搜索路径

sys.argv 是一个列表,第一项为文件的名字,剩下的参数是用户从控制台输入的参数。

你不能一直在pycharm中执行文件,当我们写了一个脚本时,别人用的时候需要验证用户名和密码才能执行,这时候就可以用到这个参数

  1. import sys
  2. argv_list=sys.argv
  3. print('argv_list',argv_list)
  4. if len(argv_list)==3 and argv_list[1]=='xiao'and argv_list[2]=='':
  5. print('程序执行')
  6. else:
  7. sys.exit() #程序不执行

你在控制台terminal这样执行

  1. C:\Users\stickerzhang\PycharmProjects\untitled3\pake\package\api>python day1.py xiao 123

结果:

  1. argv_list ['day1.py', 'xiao', '']
  2. 程序执行

sys.module 是一个字典保存加载进来的一些内置模块,

  1. 'builtins': <module 'builtins' (built-in)>, 'sys': <module 'sys' (built-in)>, '_frozen_importlib': <module '_frozen_importlib' (frozen)>, '_imp': <module '_imp' (built-in)>, '_warnings': <module '_warnings' (built-in)>, '_thread': <module '_thread' (built-in)>, '_weakref': <module '_weakref' (built-in)>, '_frozen_importlib_external': <module '_frozen_importlib_external' (frozen)>, '_io': <module 'io' (built-in)>, 'marshal': <module 'marshal' (built-in)>, 'nt': <module 'nt' (built-in)>, 'winreg': <module 'winreg' (built-in)>, 'zipimport': <module 'zipimport' (built-in)>, 'encodings': <module 'encodings' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\encodings\\__init__.py'>, 'codecs': <module 'codecs' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\codecs.py'>, '_codecs': <module '_codecs' (built-in)>, 'encodings.aliases': <module 'encodings.aliases' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\encodings\\aliases.py'>, 'encodings.utf_8': <module 'encodings.utf_8' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\encodings\\utf_8.py'>, '_signal': <module '_signal' (built-in)>, '__main__': <module '__main__' from 'C:/Users/stickerzhang/PycharmProjects/untitled3/day1/text.py'>, 'encodings.latin_1': <module 'encodings.latin_1' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\encodings\\latin_1.py'>, 'io': <module 'io' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\io.py'>, 'abc': <module 'abc' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\abc.py'>, '_weakrefset': <module '_weakrefset' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\_weakrefset.py'>, 'site': <module 'site' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site.py'>, 'os': <module 'os' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\os.py'>, 'errno': <module 'errno' (built-in)>, 'stat': <module 'stat' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\stat.py'>, '_stat': <module '_stat' (built-in)>, 'ntpath': <module 'ntpath' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\ntpath.py'>, 'genericpath': <module 'genericpath' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\genericpath.py'>, 'os.path': <module 'ntpath' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\ntpath.py'>, '_collections_abc': <module '_collections_abc' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\_collections_abc.py'>, '_sitebuiltins': <module '_sitebuiltins' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\_sitebuiltins.py'>, 'sysconfig': <module 'sysconfig' from 'C:\\Users\\stickerzhang\\AppData\\Local\\Programs\\Python\\Python36\\lib\\sysconfig.py'>, 'time': <module 'time' (built-in)>}
 

python 模块基础 和常用的模块的更多相关文章

  1. Python编程总结之常用三方模块

    1.excel读写 利用python进行excel读写是经常遇到的事情,最常用的excel读写模块必属xlrd和xlwt,前者负责读,后者负责写,配合起来可实现读写. 举例1):使用xlrd读取exc ...

  2. Python语言基础04-函数和模块的使用

    本文收录在Python从入门到精通系列文章系列 在分享本章节的内容之前,先来研究一道数学题,请说出下面的方程有多少组正整数解. 事实上,上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案. ...

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

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

  4. Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数

    python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...

  5. python在数据处理中常用的模块之numpy

    一 numpy模块 NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该 ...

  6. python在数据处理中常用的模块之matplotlib

    <利用python进行数据分析>读书笔记--第八章 绘图和可视化 python 画子图(add_subplot & subplot)

  7. python开发基础(二)常用数据类型调用方法

    1 数字: int 2 3 int : 转换,将字符串转化成数字 4 num1 = '123' 5 num2 = int (a) 6 numadd = num2 +1000 7 print(num2) ...

  8. Python【第五篇】模块、包、常用模块

    一.模块(Module) 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  9. Python之时间模块、random模块、json与pickle模块

    一.时间模块 1.常用时间模块 import time # 时间分为三种格式 #1.时间戳---------------------以秒计算 # start= time.time() # time.s ...

随机推荐

  1. Mybatis自动生成实体类,映射文件,dao

    http://www.mybatis.org/generator/index.html 方法一:eclipse插件式 1.下载 mybatis-generator-core-1.3.2.jar 解压后 ...

  2. 一、JAVA内存区域与内存溢出异常

    在虚拟机自动内存管理机制的帮助下,不在需要为每一个操作区写相对应的delete/free代码来进行内存释放.进而不容易出现内存泄露和内存溢出的问题,由虚拟机管理内存,貌似这一切看起来很好.也正是因为j ...

  3. URL加载jar

    // !/test.xml 是表示jar中的test.xml文件 final URL jarUrl = new URL("jar:file:/C:/proj/parser/jar/parse ...

  4. VLC添加水印

    Name: LibVLC control APIDescription: VLC media player external control libraryVersion: 2.1.3 参照:http ...

  5. py 正在爬取第%d页的美眉图

    #coding=utf-8import reimport requestsfrom bs4 import BeautifulSoupnums = 1num = 1while True: url = & ...

  6. jformdesigner 开发

    jformdesigner 开发     1● 破解jformadesigner 脑补     2● 建立jfd文件 3● 移动关联     <file leaf-file-name=" ...

  7. [x] 封装、继承,多态

    那么多态的作用是什么呢,封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用. 而多态的目的则是为了接口重用.也就是说,不论传递过来的究竟是那个类的对象,函数都能够通过同一个接 ...

  8. where的顺序对运行的影响--无影响

    2.表连接的时候,大表与小表的顺序是哪个在前.3.在多表连接时,是表与表先连接起来,再执行对单表的限制条件where条件:还是先执行单表的限制where条件,再进行表连接?4.多表连接时,如4个表,我 ...

  9. U深度U盘启动盘制作教程

    ① 下载u深度u盘启动盘制作工具 ② 一个能够正常使用的u盘(容量大小建议在4g以上) 第一步:安装u深度u盘启动盘制作工具 双击打开已下载好的安装包,点击窗口中立即安装即可: 等待安装完成后,可以点 ...

  10. bzoj1294

    题解: 首先发现假如一个豆豆被多边形围住了,那么从这个豆豆引出一条射线 会有奇数个焦点 然后我们从每个豆豆引出一条射线 然后状压dfs 代码: #include<bits/stdc++.h> ...