sys模块
sys 模块,主要提供了系统相关的配置和操作,封装了探测、改变解释器
runtime 以及资源的交互。
import sys
#得到解释器的版本信息
print(sys.version)
#得到当前运行平台
print(sys.platform)
sys.argv 获取传递给脚本的参数,参数解析类似于 bash 的方式,第
一个参数代表脚本本身;
sys.stderr , sys.stdin , sys.stdout 这些都分别代表一个文件对象;
import sys
#以列表方式返回传递给脚本的参数
print(sys.argv)
#sys.stderr , sys.stdin , sys.stdout 这些都分别代表一个文件对象;
print(sys.stderr)
print(sys.stdin)
print(sys.stdout)
time及datetime模块
time模块
简介:time模块--时间获取和转换
time模块提供各种时间相关的功能
与时间相关的模块有:time,datetime,calendar
这个模块中定义的大部分函数是调用C平台上的同名函数实现
术语和约定的解释: 1.时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理1970纪元年以前的时间或太遥远的未来(处理极限取决于C函数库,对于32位系统而言,是2038年)
2.UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是世界标准时间.在我国为UTC+8
3.DST(Daylight Saving Time)即夏令时
4.时间元组(time.struct_time对象, time.localtime方法)
5.字符串时间(time.ctime)
常用的时间转换
import time
# 把看不懂的时间戳转换为字符串格式
a=time.time()
print(a)
print(time.ctime(a))
# 把看不懂的时间戳转换为元组格式
print(time.localtime(a))
import time
# 把元组的时间转换为时间戳
tuple_time = time.localtime()
print(time.mktime(tuple_time))
# 把元组的时间转换字符串格式
print(time.strftime('%m-%d',tuple_time))
print(time.strftime('%Y-%m-%d',tuple_time))
print(time.strftime('%T',tuple_time))
print(time.strftime('%F',tuple_time))
# 字符串格式转换为元组
s='2018-10-10'
print(time.strptime(s,'%Y-%m-%d'))
s_time='12:12:30'
print(time.strptime(s_time,'%H:%M:%S'))
eg:想要得到/etc/group文件的最后一次修改时间,
对应的年月日这些信息,并保存在文件date.txt文件中。
import os
import time
time1 = os.path.getctime('/etc/group')
tuple_time = time.localtime(time1)
year = tuple_time.tm_year
month = tuple_time.tm_mon
day = tuple_time.tm_mday
with open('date.txt', 'w') as f:
f.write("%d %d %d" %(year, month, day))
datetime模块
from datetime import date
from datetime import datetime
from datetime import timedelta
# 获取当前的日期并且以字符串方式返回
print(date.today())
d=date.today()
print(d)
# 对象加或者减一个时间间隔, 返回一个新的日期对象;
delta = timedelta(days=3)
print(d-delta)
#获取当前时间
d=datetime.now()
print(d)
namedtupled新型数据类型
因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,
所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。
具名元组的实例和普通元组消耗的内存一样多,因为字段名都被存在对应的类里面。这个类跟普通的对象
实例比起来也要小一些,因为 Python 不会用 _ dict _ 来存放这些实例的属性。
def namedtuple(typename, field_names, *, verbose=False, rename=False, module=None):
-
typename: 元组名称
-
field_names : 元组中元素的名称
-
rename: 如果元素名称中包含python关键字,必须设置rename=True
from collections import namedtuple
user = namedtuple(‘User’,[‘name’,‘age’,‘gender’])
u = user(‘cooffee’,13,‘male’)
print(u.name)
print(u.age)
print(u.gender)
print(u)
openpyxl模块
excel文档的基本定义
- 工作薄(workbook)
- 工作表(sheet)
- 活动表(active sheet)
- 行(row): 1,2,3,4,5,6………
- 列(column): A,B,C,D………
- 单元格(cell): B1, C1
import openpyxl
# 打开一个excel文档, class 'openpyxl.workbook.workbook.Workbook'实例化出来的对象
wb = openpyxl.load_workbook('classbox.xlsx')
print(wb,type(wb))
# 获取当前工作薄里所有的工作表, 和正在使用的表;
print(wb.sheetnames)
print(wb.active)
# 选择要操作的工作表, 返回工作表对象
sheet = wb['Sheet1']
# 获取工作表的名称
print(sheet.title)
#返回指定行指定列的单元格信息
print(sheet.cell(row=1,column=2).value)
cell =sheet['B1']
print(cell)
print(cell.row,cell.column,cell.value)
# 获取工作表中行和列的最大值
print(sheet.max_column)
print(sheet.max_row)
sheet.title = "学生信息"
print(sheet.title)
# 访问单元格的所有信息
print(sheet.rows) # 返回一个生成器, 包含文件的每一行内容, 可以通过便利访问.
# 循环遍历每一行
for row in sheet.rows:
# 循环遍历每一个单元格
for cell in row:
# 获取单元格的内容
print(cell.value,end=',')
# 保存修改信息
wb.save(filename='classbox1.xlsx')
json模块
import json
# 将python对象编码成为json的字符串格式;
d={'name':'fentiao'}
jsonstr = json.dumps(d)
print(jsonstr,type(jsonstr))
l = [1,2,3,4]
jsonli=json.dumps(l)
print(jsonli,type(jsonli))
# 将获取的json字符串解码为python的对象
pythonDict = json.loads(jsonstr)
print(pythonDict,type(pythonDict))
# 将将python对象编码成为json的字符串格式并写入文件中;
with open('json.txt', 'w') as f:
json.dump(d, f)
# 将文件中的json字符串解码为python的对象
with open('json.txt') as f:
json_Dict = json.load(f)
print(json_Dict, type(json_Dict))