本文为参加老男孩Python自动化运维课程第二天学习内容的总结。
大致内容如下:
1、python模块初识
2、python程序运行流程
3、python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set)
4、python数据运算
0、关于本文中所有运行Python代码的环境:
--操作系统:Ubuntu 16.10 (Linux 4.8.0)
--Python版本:3.5.2
--Python IDE: PyCharm 2016.3.2
1、Python模块初识,Python模块分为标准库和第三方库:
1) 标准库(build-in lib)为安装python后自带的模块(库),一般存放在安装路径下的lib文件夹下:
Windows:C:\Users\[username]\AppData\Local\Programs\Python\Python35\Lib\
Linux: /usr/lib/python3.5/
2) 第三方库:在安装好python后,需要另外安装的模块(库),一般存放在安装路径下的site_packages文件夹下:
Windows:C:\Users\[username]\AppData\Local\Programs\Python\Python35\Lib\site_packages\
Linux: /usr/lib/python3.5/site_packages/
要引用这些模块中的功能,必须在python代码的开头通过 import 导入要引用的模块后,才能使用模块中的各个功能。
本节课就只简单的来了解下sys和os两个标准模块。
1)sys模块:提供python解释器与用户交互的接口功能。如sys.exit(),sys.path等。
官方解释:This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter. It is always available. 详见https://docs.python.org/3.5/library/sys.html#module-sys。
sys.path: 打印Python全局环境变量
sys.arve: 如果在执行python程序时,后面没有跟任何参数(参数间以空格隔开),打印python代码文件的路径;
如果有参数,则打印所有参数(以lists的形式打印);
如果是sys.arve[N]:则打印后面的第N个参数。如果N大于后面参数的总个数,则报“out of range”错。
#!/usr/bin/python3.5
# -*- coding:utf-8 -*-
# Function: check the sys mode with sys.path and sys.argv
# Author: Spencer Jiang
# Date: 2017-02-18
import sys
# 打印Python的全局环境变量信息
print("sys.path", sys.path)
# 打印Python程序文件路径(Windows下是绝对路径,Linux下是相对路径)
print("\nsys.argv", sys.argv)
# 打印执行Python程序文件跟着的第1个参数
print("\nsys.argv[1]", sys.argv[1])
# argv报错:out of range
print("\nsys.argv[1]", sys.argv[10])
# End Of File
2)os模块:提供python解释器与操作系统交互的接口功能。如os.path,os.error等。
官方解释:This module provides a portable way of using operating system dependent functionality. 详见https://docs.python.org/3.5/library/os.html#module-os。
os.system("") : 调用系统命令,如os.system("ls -lh")、os.system("dir")等。
os.mkdir(""): 调用系统的mkdir命令创建目录
#!/usr/bin/python3.5
# -*- coding:utf-8 -*-
# Function: check the os mode with os.open(), os.system(), os.popen(), os.mkdir()
# Author: Spencer Jiang
# Date: 2017-02-18
import os
# 调用系统命令ls -lh 显示当前路径下所有文件和目录列表
print(os.system("ls -lh"))
cmd_line = os.system("ls -lh")
# 如果命令执行成功,则返回1,否则为0
print("\ncmd_line: ", cmd_line)
# 创建test_day2文件夹
os.mkdir("test_day2")
# 用popen()替换system()
cmd_result = os.popen("ls -lh")
# 打印在内存的地址
print("\ncmd_result Address in memory: ", cmd_result)
# read() 打印cmd_result的值
print("\n cmd_result : ", cmd_result.read())
# 再创建test_day2文件夹,报错
os.mkdir("test_day2")
# End Of File
2、Python程序运行流程
Python是解释型语言,在执行过程中涉及到两个概念:PyCodeObject 和 pyc文件
PyCodeObject: 指Python代码执行时的结果保存在内存中的对象
pyc文件: 指Python代码执行结果保存到磁盘上的文件,可视为PyCodeObject的持久化