字符串

分割字符

file_name = "name.png.jpg"

file_name.split(".")
['name', 'png', 'jpg']
file_name.split(".", 1) # 只分割1次
['name', 'png.jpg']
file_name.rsplit(".", 1)  # 从右边开始分割,只分割1次,可用来获取扩展名
['name.png', 'jpg']

网址解析

解析后才不受空格等特殊字符影响

from urllib.parse import quote

url = "www.mmphcrc.com/中文和 空格.html"
url_encoded = quote(url)

print(url_encoded)
www.mmphcrc.com/%E4%B8%AD%E6%96%87%E5%92%8C%20%E7%A9%BA%E6%A0%BC.html

工具函数

判断是否是中文

def is_chinese(string):
    """
    检查整个字符串是否包含中文
    :param string: 需要检查的字符串
    :return: bool
    """
    for ch in string:
        if u'\u4e00' <= ch <= u'\u9fff':
            return True
    return False

is_chinese('e')
False

哈希转换

import hashlib
def md5(raw_str: str):
    m = hashlib.md5()
    m.update(raw_str.encode("utf8"))
    return m.hexdigest()

md5('额尔古那河右岸')
'456406450f077ba22a683e2ccf35164b'

MD5(Message Digest Algorithm 5)是一种常用的哈希算法,用于将输入的字符串转换为固定长度(通常是128位)的哈希值。

函数的作用是将输入的字符串进行MD5哈希运算,并返回运算结果的十六进制表示。具体的实现步骤如下:

  1. 创建一个hashlib.md5()对象,用于进行MD5哈希运算。
  2. 使用m.update()方法将输入的字符串进行编码,并更新哈希对象的状态。
  3. 使用m.hexdigest()方法获取哈希对象的十六进制表示,即MD5哈希值。
  4. 将MD5哈希值作为函数的返回值。

生成随机字符

生成目标个数的随机字符

设置seed可以保证,每次生成的字符列表是一样的
可用作dash的随机id列表

import random
import string

def generate_unique_random_strings(length=8, num_strings=55, seed=None):
    random.seed(seed)
    characters = string.ascii_letters + string.digits
    generated_strings = set()

    while len(generated_strings) < num_strings:
        new_string = ''.join(random.choice(characters) for _ in range(length))
        if new_string not in generated_strings:
            generated_strings.add(new_string)
            yield new_string

            
seed = 42  # 可以是任何整数

list(generate_unique_random_strings(length=8, num_strings=5, seed = seed))
['OhbVrpoi', 'VgRV5IfL', 'BcbfnoGM', 'bJmTPSIA', 'oCLrZ3aW']