Python入门17

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="排序商品信息")

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_42725815/article/details/82692268
今日推荐