-
一、模块初识
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。 - sys
# Author:Scott She
import sys
print(sys.path) # 打印环境变量
print(sys.argv)
print(sys.argv[2]) # 如果执行文件时候传入的参数多于或等于三个成立, 否则会报错
输入:
$ python sys_mod.py hello world
输出(把执行脚本时传递的参数获取到了)
['sys_mod.py', 'helo', 'world']
- **os: ** 调用系统命令
# Author:Scott She
import os
# cmd_res = os.system("ls") # 执行命令, 不保存结果
cmd_res = os.popen("ls").read() # 执行命令, 保存结果, read()函数从返回对象中取结果
print("-->", cmd_res)
os.mkdir("new_file") # 创建目录
- 导入自定义模块
# Author:Scott She
# 1.导入自定义的guess模块, 默认会在当前目录下找;
# 2.当前目录找不到的话会在系统环境变量中找, 找不到的话报错
import guess # 这里的guess模块为day1(练习代码)中的guess.py
若报错,
1.将guess.py拷贝到当前目录下;
2.将guess.py拷贝到/usr/local/lib/python3.6/site-packages目录下(这是我的系统的site-packages的路径, site-packages一般存放三方库)
- 二、.pyc是个什么
-
python到底是什么
其实Python和Java/C#一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下Python程序的运行过程吧。
当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。
熟悉Java的同学可以想一下我们在命令行中如何执行一个Java的程序:
javac hello.java
java hello
只是我们在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。
-
简述Python的运行过程
在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。
.pyc 路径: /usr/local/lib/python3.6/site-packages/_pycache_