什么是sys模块?
sys模块:全称system,指的是解释器(os指的是操作系统) 常用操作,用于接收系统操作系统调用解释器传入的参数
1、sys.argv
获取脚本传递的所有参数,返回一个列表。列表中的所有元素均为脚本传递的参数。
sys.argv[0] # 脚本传递的第一个参数,固定为脚本名称,可以通过次方式获得脚本名称
可以使用索引依次获得脚本传递的其他参数
2 sys.version
获取解释器的版本信息,返回一个字符串。根据python版本编写符合不同版本的程序 使程序可兼容
import os
import sys
print(sys.version[:3])
3.6
可以通过version查看是那个版本的程序
import os
import sys
if sys.version[0] == '2':
print('running in python2')
elif sys.version[0] == '3':
print('running in python3')
输出结果
running in python3
可以通过直接打印版本 查看是那个版本的程序
import os
import sys
print(sys.version)
输出结果
3.6.4 (default, Aug 10 2018, 11:14:49)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
返回模块的搜索路径,初始化使用PYTHONPATH环境变量
print(sys.path)
实现跨平台
print(sys.platform)
if sys.platform == 'linux':
os.system('ifconfig')
else:
os.system('ipconfig')
练习:
比较两个文件的不同之处
import difflib
import sys
if len(sys.argv) !=2:
print(
"""
Usage: %s 比较的文件1 比较的文件2
"""%(sys.argv[0])
)
else:
file1 = sys.argv[1]
file2 = sys.argv[2]
try: # 这里的是摆出异常,将有可能出现的错误情况提前列出。
with open(file1) as f1,open(file2) as f2:
con1 =f1.read().splitlines(keepends=True)
con2 =f2.read().splitlines(keepends=True)
except Exception as a:
print('比较错误,错误的原因',a)
d = difflib.HtmlDiff
htmlcontent = d.make_file(con1,con2)
with open('different.html','w') as f:
f.write(htmlcontent)