Python常用函数封装集

简介: Python常用函数封装集

前言

一直从事php+jquery+layui+Echarts作为数据可视化大屏的前后端开发,包含高德和百度地图API的二次开发。相对来说,php的热度和关注度是低于python的,这样就导致遇见疑难问题的时,只能自行消化(面对CSDN编程)。为了不被淘汰,开始学习python,打算基于python+diango+jquery+layui+Echarts作为新的数据可视化大屏的后端语言开发。


  1. 作为“拿来主义”的忠实拥趸,python封装函数是基于前期php数据可视化的经验封装进行“迁移”;
  2. 有点“不求甚解”的味道,只为快速地实现目的;
  3. 尽可能学好基础,养成优雅代码的好习惯;
  4. 随时学习随时更新,争取在完成函数封装时对python的基础学习告一段落;
  5. 随学习进度和知识的积累,随时优化封装代码;

1. 时间戳转时间格式

'''
#时间戳转时间格式
#time参数格式,为1489465020
'''
def stampToTime(times):
    timeArray = time.localtime(times)
    otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
    return otherStyleTime


2. 将获取的数据转为JSON

'''
#将获取的数据转为JSON保存到本地
#content,字典类型
#name,文件名称
#suffix,保存格式后缀名
'''
def makeTxt(content, name="lockdatav", suffix='json'):
    with open('{}.{}'.format(name, suffix), 'w+') as f:
        f.write(json.dumps(content, ensure_ascii=False))
makeTxt(data, 'safety', 'json')


3. 读取Excle并转为json

# 导入py库
import os
import json
import xlrd
from datetime import date
# Excle时间格式转化为py时间格式
def xlsfpytime(xlsTime):
    # 防止参数为字符串
    if isinstance(xlsTime, str) == False:
        data_value = xlrd.xldate_as_tuple(xlsTime, 0)
        tmpTime = date(*data_value[:3]).strftime('%Y-%m-%d')
        return tmpTime
    else:
        pass
def xls2json(fileName):
    # 判断文件是否存在
    if os.path.exists(fileName):
        book = xlrd.open_workbook(fileName)
        # 根据sheet索引或者名称获取sheet内容
        sheet = book.sheet_by_index(0)
        # 格式化数据,生成Dict
        tables = []
        data = {}
        for rown in range(sheet.nrows):
            list = {}
            list['name'] = sheet.cell_value(rown, 0)
            list['contacts'] = sheet.cell_value(rown, 1)
            list['mobile'] = sheet.cell_value(rown, 2)
            list['address'] = sheet.cell_value(rown, 3)
            list['category'] = sheet.cell_value(rown, 4)
            list['scale'] = sheet.cell_value(rown, 5)
            list['visit'] = xlsfpytime(sheet.cell_value(rown, 6))  # 时间格式的转化
            list['capital'] = sheet.cell_value(rown, 7)
            tables.append(list)
        # print(tables)
        # 删除标题头
        del tables[0]
        data['code'] = 0
        data['msg'] = 'OK'
        data['data'] = tables
        # 转为JSON
        res = json.dumps(data, ensure_ascii=False)
        return res
    else:
        print('对应的xls表格不存在')
# 执行函数调用
fileName = r'C:/Users/Administrator/Desktop/客户推进表.xls'
print(xls2json(fileName))


4. python进行md5加密

import time
import hashlib
def getMd5(str):
    new_md5 = hashlib.md5()
    new_md5.update(str.encode(encoding='utf-8'))
    return new_md5.hexdigest()
nowTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(getMd5(nowTime))


5. 指定个数的随机字符串(密码)

def getRandPass(nums):
    str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
    return ''.join(__import__('random').choice(str) for i in range(nums))
print(getRandPass(10))

6. 读取图片的属性信息

import exifread
def read(urls):
    with open(urls, 'rb') as f:
        contents = exifread.process_file(f)
        print(contents)
urls = "C:/Users/30930/Desktop/IMG_1480.JPG"
read(urls)


7. 将数据存储为exlce表格

import os
import xlwt
"""
生成excle的封装函数
save_path,保存路径
sheetname,工作表名称
column_name_list,列标题,类型:列表
read_list,数据
"""
# 保存为Excel文件
def save_excel(save_path, sheetname, column_name_list, read_list):
    workbook = xlwt.Workbook()
    sheet1 = workbook.add_sheet(sheetname=sheetname)
    for i in range(0, len(column_name_list)):
        sheet1.write(0, i, column_name_list[i])
    k = 1
    for v in read_list:
        kval = v.split(',')
        for j in range(0, len(kval)):
            sheet1.write(k, j, kval[j])
        k = k + 1
    workbook.save(save_path)
    print('信息保存 OK,记录条数共计:' + str(len(read_list)))
# 默认保存路径
save_path = ""
if save_path == "":
    save_path = os.getcwd() + "/2.xls"
sheetname = "sheet1"
column_name_list = ["姓名", "号码"]
read_list = ["张三,135", "张三,135"]
if save_path == "":
    save_path = os.getcwd()
save_excel(save_path, sheetname, column_name_list, read_list)


8. 获取文件md5值

import hashlib
def getMD5(filepath):
    f = open(filepath, 'rb')
    md5obj = hashlib.md5()
    md5obj.update(f.read())
    hash = md5obj.hexdigest()
    f.close()
    return str(hash).lower()
filepath = r"list1.txt"
print(getMD5(filepath))

9. 随机字典

import json
import random
def getRanJson(nums):
    a = [random.randint(40, 100) for k in range(nums)]
    print(type(a))
    b = json.dumps(a, ensure_ascii=False)
    print(b)
getRanJson(6)

10.随机颜色

import random
def random_color():
    color_list = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
    color = ''
    for i in range(6):
        color += random.choice(color_list)
    return '#' + color
print(random_color())

lockdatav done!

相关文章
|
3月前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
101 0
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
140 67
|
3天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
16 2
|
30天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
49 18
|
22天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
46 8
|
1月前
|
Python
Python中的函数
Python中的函数
44 8
|
2月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
2月前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
54 5
|
3月前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解
|
3月前
|
存储 数据安全/隐私保护 索引