os模块的补充
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('data.txt','w')as f:
f.write('%d %d %d' %(year,month,day))
##常用时间转换
#1.把元组的时间转换为时间戳
tuple_time=time.localtime()
print(time.mktime(tuple_time))
#2.把元组时间转换为字符串格式
print(time.strftime('%Y-%m-%d'))
print(time.strftime('%T'))
print(time.strftime('%F'))
#3.把字符串格式转换为元组
s='2018-10-1'
print(time.strptime(s,'%Y-%m-%d'))
s_time='12:20:30'
print(time.strptime(s_time,'%H:%M:%S'))
datetime模块详解
from datetime import date
from datetime import time
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新型数据类型
from collections import namedtuple
User=namedtuple('User',['name','age','gender'])
u=User('lijia',20,'female')
print(u.name)
print(u)
json模块
import json
#将python对象编码成为json的字符串格式;
d={'name':'lijia'}
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))
import json
import string
from random import choice
keys = string.ascii_lowercase
values = string.ascii_letters + string.digits
dict = {choice(keys): choice(values) for i in range(100)}
with open('json.txt', 'w') as f:
# separators = ("每个元素间的分隔符", “key和value之间的分隔符”)
json.dump(dict, f, indent=4, sort_keys=True, separators=(';', '='))
应用案例之系统监控
#获取当前主机信息,包含操作系统名,主机名,内核版本,硬件架构等
import datetime
import os
import time
from datetime import datetime
from psutil._common import suser
info=os.uname()
print('1.主机信息'.center(50,'*'))
print("""
操作系统:%s,
主机名:%s,
内核版本:%s,
硬件架构:%s,
""" %(info.sysname,info.nodename,info.release,info.machine))
#获取开机时间和开机时长
print('2.开机时间'.center(50,'*'))
#获取开机时间的时间戳,需要安装psutil模块
import psutil
boot_time=psutil.boot_time()
#将时间戳转换为字符串格式,2种方法,任选一种
# print(time.ctime(boot_time))
boot_time=datetime.fromtimestamp(boot_time)
#获取当前时间
now_time=datetime.now()
#获取时间差
delta_time=now_time-boot_time
delta_time=str(delta_time).split('.')[0]
now_time=str(now_time).split('.')[0]
print("""
开机时间:%s
当前时间:%s
开机时长:%s
""" %(boot_time,now_time,delta_time))
#获取当前登陆用户
print('3.当前登陆用户'.center(50,'*'))
#获取当前登陆用户的详细信息,需求是获取用户名和登陆主机
users=psutil.users()
#获取需要的信息
users={'%s %s' %(user.name,user.host) for user in users}
#实现信息的去重
for user in users:
print('\t %s' %(user))
print(psutil.disk_partitions())
print(psutil.version_info)
print(psutil.virtual_memory())
获取ip对应的地理位置
import json
from urllib.request import urlopen
ip=input('请输入查询的ip:')
url="http://ip.taobao.com/service/getIpInfo.php?ip=%s" %(ip)
# 根据url获取网页的内容, 并且解码为utf-8格式, 识别中文;
text= urlopen(url).read().decode('utf-8')
print(text)
print(type(text))
# 将获取的字符串类型转换为字典, 方便处理
d = json.loads(text)['data']
country = d['country']
city = d['city']
print(country, city)
python和excel的操作
excel文档的基本定义
- 工作薄(workbook)
- 工作表(sheet)
- 活动表(active sheet)
- 行(row): 1,2,3,4,5,6........
- 列(column): A,B,C,D........
- 单元格(cell): B1, C1
"""
import openpyxl
#1.打开一个excel文档,class 'openpyxl.workook'实例化出来的对象
wb=openpyxl.load_workbook('example.xlsx')
#获取当前工作簿里所有的工作表和正在使用的表
print(wb.sheetnames)
print(wb.active)
#2.选择要操作的工作表,返回工作表对象
sheet=wb['Sheet1']
#获取工作表名称
print(sheet.title)
#3.返回指定行指定列的单元格信息
print(sheet.cell(row=1,column=2).value)
cell=sheet['B1']
print(cell)
print(cell.row,cell.column,cell.value)
#4.获取工作表中行和列的最大值
print(sheet.max_column)
print(sheet.max_row)
sheet.title='学生信息'
print(sheet.title)
#5.访问单元格的所有信息
print(sheet.rows)
#循环遍历每一行
for row in sheet.rows:
#循环遍历每一个单元格
for cell in row:
#获取单元格内容
print(cell.value)
print()
#6.保存修改信息
wb.save(filename='example.xlsx')
操作Excel表格可详细的概括如下:
1.导入 openpyxl 模块。
2.调用 openpyxl.load_workbook()函数。
3.取得 Workbook 对象。
4.调用 wb.sheetnames和 wb.active 获取工作簿详细信息。
5.取得 Worksheet 对象。
6.使用索引或工作表的 cell()方法,带上 row 和 column 关键字参数。
7.取得 Cell 对象。
8.读取 Cell 对象的 value 属性
Excel简单实例
- 定义一个函数, readwb(wbname, sheetname=None)
- 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;
- 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量
- 所有信息, 并将其保存到数据库中
import os
import openpyxl
def readwb(wbname, sheetname=None):
# 打开工作薄
wb = openpyxl.load_workbook(wbname)
# 获取要操作的工作表
if not sheetname:
sheet = wb.active
else:
sheet = wb[sheetname]
# 获取商品信息保存到列表中
#[ ['name', price, count]
all_info = []
for row in sheet.rows:
child = [cell.value for cell in row]
all_info.append(child)
return sorted(all_info, key=lambda item: item[1])
def save_to_excel(data, wbname, sheetname='sheet1'):
"""
将信息保存到excel表中;
[[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]]
"""
print("写入Excel[%s]中......." %(wbname))
# 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象
wb = openpyxl.Workbook()
# 修改当前工作表的名称
sheet = wb.active
# 修改工作表的名称
sheet.title = sheetname
for row, item in enumerate(data): # 0 [' BOOK', 50, 3]
for column, cellValue in enumerate(item): # 0 ' BOOK'
sheet.cell(row=row+1, column=column+1, value=cellValue)
# ** 往单元格写入内容
# sheet.cell['B1'].value = "value"
# sheet.cell(row=1, column=2, value="value")
# 保存写入的信息
wb.save(filename=wbname)
print("写入成功!")
data = readwb(wbname='Book1.xlsx')
save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")