python学习:python编程之模块学习及python底层运行过程的讲解
模块
上一篇文章中有一个getpass,其实他就是模板,模板就是已经给封装好了的,我们可以直接来使用的。模块也叫做库,库有两种,一种是标准库,不用安装,直接导入就可以使用,还有一个是第三方库,必须下载安装才能用
sys库学习
第一个是打印当前python的环境变量,第二个是打印当前文件的相对路径
可以根据结果看出来第二个并没有打印相对路径,这是因为在pycharm中调用他就是以绝对路径的方式来执行的,所以,这里输出的是绝对路径,如果要是在dos下进行执行这个文件,那么第二个输出的是相对路径
我们在执行一个py文件的时候,可以给这个文件传递参数
比如该图,传递了123,则输出了一个列表,这个列表中含有参数123,列表也是有下标的,下标是从0开始的,比如0下标,对应sys_mod.py,1下标对应1,2下标对应2,3下标对应3,我们可以根据下标来取出这个列表中的值;
可以通过sys.argv[下标索引]来获取相应下标的值
这个是在pythom下获取的索引为0的参数,所以这个是绝对路径,而不是相对路径
os模块
os模块就是和系统交互的执行的操作,比如python中调用相应的dos命令
这个程序执行结果就是,相当于在当前目录执行dir,并且将执行结果输出到控制台,它的返回值为0或1,0表示执行成功,1表示执行失败,这只是在这个方法中,在python中1表示真,0表示假
还有一个方法和system类似,就是popen这个方法也是执行命令但是执行结果不会输出到控制台,可以通过店read方法读取到这个执行结果,而且这个结果还没有乱码
通过mkdir方法创建了一个huanfeng的文件夹
自定义模块
我们可以将自己定义的py文件,让其它py文件来import,这样我们的文件就相当于模块了,比如1.py导入了2.py就相当于在2.py的代码全部都放到了1.py中,所以2.py该执行就执行,有输出就输出,当前它内部的方法,也可以被1.py给调用
import xx.py 导入一个模块系统会自动先去当前目录中寻找这个模块,如果没有,会去系统变量(site-package)中去寻找,如果还没有那么就是没有找到,就会出错
python的运行过程及pyc文件是什么
我们运行py文件的时候,它会先编译,编译的结果保存到pycodeobject中,当程序运行结束之后,python会将pycodeobject的内容写回到pyc文件中,可以把pyc看成编译结果的硬盘持久话,当下次在运行的时候,看源程序和pyd程序是否更改时间是否一致,如果一致,就表示源程序没有更改,那么程序会直接载入pyc用于执行,如果不一致,就表示程序发生了改变,所以此时此时执行程序,还得经过pycodeobject那个过程
自从python2.2之后,如果整数发生了溢出,python会自动将整数转成长整数,也就是说在长整数后面不加L也不会出问题,因为它会自动进行转换。
通过time库输出当前时间
time_format为时间的格式,time.strftime(time_format)为当前时间以time_format格式化处理,最后输出这个被格式化的时间