简述python的运行过程
在说这个问题之前,我们先来说两个概念,PYCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PYCodeObject则是Python编译器真正编译成的结果
当Python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当Python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,
否则就重复上面的内容。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject
的一种持久化保存方式。
初识模块
python中又非常丰富和强大的标准库和第三方库
标注库:可以直接调用的库,不需要安装。
第三方库:必须下载并安装。
模块名不能与需要导入的库名相同
默认是从当前路径开始查找
#import sys
#print(sys.path) #打印环境变量
""" 模块的位置
['C:\\Users\\tutu\\Desktop',
'C:\\Users\\tutu\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
'C:\\Users\\tutu\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
'C:\\Users\\tutu\\AppData\\Local\\Programs\\Python\\Python37\\lib',
'C:\\Users\\tutu\\AppData\\Local\\Programs\\Python\\Python37',
'C:\\Users\\tutu\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages']
"""
print(sys.argv) #打印当前目录的相对路径
"""取出列表中的第二个值,列表从0开始
python sys_mod.py 1 2 3
#print(sys.argv[2]) """
os模块,与操作系统交互时使用
import os
os.system("dir") #显示当前目录下的文件
cmd_res = os.system("dir") #给上面命令结果定义个变量cmd_res
print("--",cmd_res)
输出结果为--0
因为os.system是执行完直接打印在屏幕上,不能存给变量
0为命令的执行结果,0为成功,非0为不成功
os.popen("dir").read()
cmd_res = os.popen("dir").read()
print(cmd_res)
输出如下:
<os._wrap_close object at 0x000001BA5E405400>
默认是临时存储在内存中的,需要用read调用
os.popen("dir").read()
cmd_res = os.popen("dir").read()
print(cmd_res)
则输出正确列出目录下的文件
创建目录
os.mkdir("new_dir")
创建自己的第一个模块
注意!模块只在当前同一路径下,或在全局环境变量中才可调用
所以,最好把模块放到环境变量中site-packages下即可。
创建一个名为login的模块,内容如下:
import getpass
_username ='zhangtutu'
_passwd ='123456'
user =input("请输入用户名:")
passwd =getpass.getpass("请输入密码:")
if _username == user and _passwd == passwd:
print("Welcom user %s login"% user)
else:
print("wrong username or passwd")
在sys_mod.py中调用login模块:
import login 结果如下:
C:\Users\tutu\Desktop>python sys_mod.py
请输入用户名:zhangtutu
请输入密码:
Welcom user zhangtutu login
!··注意!模块只在当前同一路径下,或在全局环境变量中才可调用
所以,最好把模块放到环境变量中site-packages下即可。