Python3记录--个人常用函数及资源(持续更新)

本文阅读 4 分钟
首页 安全分享,WEB安全 正文

本篇用于记录我在Python中常用的函数。

2.1清洗字符串

用于清理字符串中的特殊字符,可用于文件命名。

def clean_txt(str): 
    rstr = r"[\/\\\:\*\?\"\<\>\|]" 
    str = re.sub(rstr, "_", str) 
    return str

2.2字节格式化

将字节格式化为kb、mb、gb,可用于文件大小转换。

def format_size(self,bytes):
    try:
        bytes=float(bytes)
        kb=bytes/1024
        if kb>1024:
            mb=kb/1024
            if mb>1024:
                gb=mb/1024
                return '%.2fGB'%gb
            else:
                return '%.2fMB'%mb
        else:
            return '%.2fKB'%kb
    except:
        return 'error'

2.3UA随机生成

多用于爬虫。

def get_ua(self):
    first_num = random.randint(55, 62)
    third_num = random.randint(0, 3200)
    fourth_num = random.randint(0, 140)
    os_type = [
        '(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)', '(X11; Linux x86_64)',
        '(Macintosh; Intel Mac OS X 10_12_6)'
    ]
    chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num)

    ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',
                   '(KHTML, like Gecko)', chrome_version, 'Safari/537.36']
                  )
    return ua

2.4停用词

用于去停用词处理。

1.自定义stopwords.txt

https://wwe.lanzoui.com/i24f9p49iab

2.snownlp_stopwords.txt

https://wwe.lanzoui.com/iLxyfp49kmf

3.pyhanlp_stopwords.txt

https://wwe.lanzoui.com/iYR2Bp49l7g

2.5正则匹配汉字

用于中文汉字的筛选。

def match_words(text):
    regex= r'[\u4e00-\u9fa5]+'
    words=re.findall(regex,text)
    return words

2.6输出彩色字体

print('\033[35;46m正常\033[0m')
print('\033[31;43m警告\033[0m')
print('\033[31;44m错误\033[0m')

效果 img 具体参考

https://www.cnblogs.com/wj-1314/p/7449812.html

2.7判断关键字是否在文本中出现

基于any()函数

keyword_list=['a','b','c',]
flag=any(True if keyword in text else False for keyword in keyword_list)

2.8谷歌翻译语言表

language_table={ 'auto': '自动选择', 'af': '南非荷兰语', 'sq': '阿尔巴尼亚语', 'am': '阿姆哈拉语', 'ar': '阿拉伯语', 'hy': '亚美尼亚语', 'az': '阿塞拜疆语', 'eu': '巴斯克语', 'be': '白俄罗斯语', 'bn': '孟加拉语', 'bs': '波斯尼亚语', 'bg': '保加利亚语', 'ca': '加泰罗尼亚语', 'ceb': '宿务语', 'zh': '中文(简体)', 'zh-TW': '中文(繁体)', 'co': '科西嘉语', 'hr': '克罗地亚语', 'cs': '捷克语', 'da': '丹麦语', 'nl': '荷兰语', 'en': '英语', 'eo': '世界语', 'et': '爱沙尼亚语', 'fi': '芬兰语', 'fr': '法语', 'fy': '弗里西语', 'gl': '加利西亚语', 'ka': '格鲁吉亚语', 'de': '德语', 'el': '希腊语', 'gu': '古吉拉特语', 'ht': '海地克里奥尔语', 'ha': '豪萨语', 'haw': '夏威夷语', 'he': '希伯来语', 'hi': '印地语', 'hmn': '苗语', 'hu': '匈牙利语', 'is': '冰岛语', 'ig': '伊博语', 'id': '印尼语', 'ga': '爱尔兰语', 'it': '意大利语', 'ja': '日语', 'jw': '爪哇语', 'kn': '卡纳达语', 'kk': '哈萨克语', 'km': '高棉语', 'ko': '韩语', 'ku': '库尔德语', 'ky': '吉尔吉斯语', 'lo': '老挝语', 'la': '拉丁语', 'lv': '拉脱维亚语', 'lt': '立陶宛语', 'lb': '卢森堡语', 'mk': '马其顿语', 'mg': '马尔加什语', 'ms': '马来语', 'ml': '马拉雅拉姆语', 'mt': '马耳他语', 'mi': '毛利语', 'mr': '马拉地语', 'mn': '蒙古语', 'my': '缅甸语', 'ne': '尼泊尔语', 'no': '挪威语', 'ny': '尼杨扎语(齐切瓦语)', 'ps': '普什图语', 'fa': '波斯语', 'pl': '波兰语', 'pt': '葡萄牙语', 'pa': '旁遮普语', 'ro': '罗马尼亚语', 'ru': '俄语', 'sm': '萨摩亚语', 'gd': '苏格兰盖尔语', 'sr': '塞尔维亚语', 'st': '塞索托语', 'sn': '修纳语', 'sd': '信德语', 'si': '僧伽罗语', 'sk': '斯洛伐克语', 'sl': '斯洛文尼亚语', 'so': '索马里语', 'es': '西班牙语', 'su': '巽他语', 'sw': '斯瓦希里语', 'sv': '瑞典语', 'tl': '塔加洛语(菲律宾语)', 'tg': '塔吉克语', 'ta': '泰米尔语', 'te': '泰卢固语', 'th': '泰语', 'tr': '土耳其语', 'uk': '乌克兰语', 'ur': '乌尔都语', 'uz': '乌兹别克语', 'vi': '越南语', 'cy': '威尔士语', 'xh': '班图语', 'yi': '意第绪语', 'yo': '约鲁巴语', 'zu': '祖鲁语'}

2.9Tkinert函数中引入外部图片

基于面板(paned)组件

from tkinter import *
from tkinter import ttk
from PIL import ImageTk,Image
imgs=['Refresh.png']
class App:
    def __init__(self):
        self.w=Tk()
        self.paned = PanedWindow(self.w)
        self.img = imgs
        img = Image.open(self.img[0])
        photo = img.resize((50, 25))
        self.paned.image = ImageTk.PhotoImage(photo)
        self.button = ttk.Button(self.w, image=self.paned.image)
        self.button.pack()
        self.w.mainloop()

if __name__ == '__main__':
    App()

效果 img

2.10Tkinert窗口居中

from tkinter import *

class App:
    def __init__(self):
        self.w=Tk()
        width=300
        height=400
        left=(self.w.winfo_screenwidth()-width)/2
        top=(self.w.winfo_screenheight()-height)/2
        self.w.geometry('%dx%d+%d+%d'%(width,height,left,top))
        self.w.mainloop()

if __name__ == '__main__':
    App()

2.11时间戳转日期时间

def convert_to_datetime(timestamp):
    timeArray = time.localtime(timestamp)
    datetime= time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
    return datetime

2.12 B站AV号转BV号

alphabet = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'

def dec(x):
    #bv to av
    r = 0
    for i, v in enumerate([11, 10, 3, 8, 4, 6]):
        r += alphabet.find(x[v]) * 58**i
    return (r - 0x2_0840_07c0) ^ 0x0a93_b324

def enc(x):
    #av to bv
    x = (x ^ 0x0a93_b324) + 0x2_0840_07c0
    r = list('BV1**4*1*7**')
    for v in [11, 10, 3, 8, 4, 6]:
        x, d = divmod(x, 58)
        r[v] = alphabet[d]
    return ''.join(r)

2.13 获取当前所属星期

def show_date(self):
        """ 展示日期信息,便于天气展示 :return: """
        date = str(datetime.date.today())
        year,month,day=date.split('-')
        week_day_dict = { 
            0: '星期一',
            1: '星期二',
            2: '星期三',
            3: '星期四',
            4: '星期五',
            5: '星期六',
            6: '星期日 ',
        }
        now=datetime.datetime.now()
        date_index = now.weekday()
        date_time=f'{ year}年{ month}月{ day}日 { week_day_dict[date_index]}'
        return date_time

2.14 PyQT5 安装WebEngine

pip install PyQtWebEngine

2.15 解决最新Pyecharts无Map

pip install pyecharts==0.5.1

2.16 图片硬编码

import base64
def img_to_base64(filename):
    with open(filename, 'rb') as open_icon:
        b64str = base64.b64encode(open_icon.read())
        return b64str

2.17 py2与py3 pycharm正则快速替换

find:print (.*?);?$
replace:print\($1\)

2021年5月13日 1.清洗字符串函数 2.字节格式化函数 3.UA随机生成函数

2021年5月14日 1.停用词资源 2.正则匹配汉字函数

2021年5月19日 1.输出彩色字体 2.判断关键字是否在文本中出现 3.谷歌翻译语言表

2021年5月31日 1.Tkinert函数中引入外部图片 2.Tkinert窗口居中

2021年8月15日 1.时间戳转日期时间

2021年9月3日 1.B站AV号转BV号

2021年9月22日 1.获取当前所属星期

2021年10月19日 1.PyQT5 安装WebEngine

2021年11月04日 1.解决最新Pyecharts无Map

2021年11月29日 1.图片硬编码

2022年7月12日 1.py2与py3 pycharm正则快速替换

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/a1397852386/article/details/116763202
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复