快速索引

  • 代码免登陆复制
  • 虚拟环境
  • 读写相关
  • 读文件(UTF8)
  • 写文件(UTF8)
  • 写文件(CSV)
  • Print输出到文件
  • 文件系统相关
  • 获取当前工作目录
  • 获取相对路径
  • 目录/文件是否存在
  • 获得文件后缀
  • 创建目录
  • 为文件或目录创建目录
  • 时间相关
  • 获得格式化的当前时间
  • 分析相关
  • 正则匹配
  • JSON


代码免登陆复制

F12,控制台输入 document.body.contentEditable='true'

虚拟环境

apt update
apt install software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt install python3.10
apt install python3.10-venv
python3.10 -m venv /mnt/sd2/stable-diffusion-webui/venv

# 然后在/usr/bin中
ln -fs python3.10 python3

读写相关

读文件(UTF8)

with open(path, 'r', encoding='utf8') as f:
    text = f.read()
    # text = f.readline() # 按行
    if text.startswith(u'\ufeff'): # (可选)去掉bom,不然JSON读不了
        text = text.encode('utf8')[3:].decode('utf8')

写文件(UTF8)

# 1
outFile = open('xwmisc.txt', 'w', encoding='utf8', newline='')
outFile.write(text)
outFile.flush()
outFile.close()

# 2
with open('xwmisc.txt', 'w', encoding='utf8', newline='') as outFile:
    outFile.write(text)
    outFile.flush()

写文件(CSV)

import csv

with open('xwmisc.csv', 'w', encoding='utf8', newline='') as recordFile:
    writer = csv.writer(recordFile)
    writer.writerow([i * 2 for i in range(100)])

Print输出到文件

import os
import sys

join = os.path.join

class Logger(object):
    def __init__(self, filename=None, stream=sys.stdout):
        if filename is None:
            filename = join(os.getcwd(), 'xwmisc.txt')
        self.terminal = stream
        self.log = open(filename, 'a')

    def write(self, message):
        message = str(message)
        self.terminal.write(message)
        self.log.write(message)
        self.log.flush()

sys.stdout = Logger(stream=sys.stdout)
sys.stderr = Logger(stream=sys.stderr)

print("xwmisc") # 控制台和文件会同时输出xwmisc

文件系统相关

获取当前工作目录

import os
# 取决于执行python命令后跟的文件路径,无视执行代码时所处的文件
os.getcwd() # 返回当前工作目录

获取相对路径

import os
from os.path import join

def getRelativePath(path):
    return join(os.getcwd(), path)

目录/文件是否存在

import os
os.path.exists('./abc') # 目录
os.path.exists('./abc/xwmisc.txt') # 文件

获得文件后缀

import os
os.path.splitext('./xwmisc.txt') # ('./xwmisc', '.txt')
os.path.splitext('./xwmisc/txt') # ('./xwmisc/txt', '')

创建目录

import os
join = os.path.join

def makeRelativePath(path):
    target = join(os.getcwd(), path)
    os.makedirs(target, exist_ok=True) # 可以创建多级目录,若存在则无操作
    return target

为文件或目录创建目录

import os

def makePath(path): # path可以是文件或者目录
    _path, ext = os.path.splitext(path)
    os.makedirs(_path, exist_ok=True)

时间相关

获得格式化的当前时间

Python3 日期和时间

time.strftime("年月日时分秒_%Y-%m-%d_%H-%M-%S", time.localtime())

分析相关

正则匹配

Python3 正则表达式

import re

text = '''"xwmiscScript": "State("状态",1,false);'''

# 逗号和括号要转义
# 若是匹配中间文本,前后要加.*?
matcher = re.match(r'.*?State\("(.+)"\,(\d+)\,.+\).*?', text)
if matcher is not None:
    param1 = matcher.group(1)
    param2 = matcher.group(2)
    param3 = matcher.group(3)
    print(param1, param2, param3)

JSON

Python3 JSON 数据解析

import json

text = { 'author': 'xwmisc' }

_json = json.loads(text)  # 从JSON到对象
_text = json.dumps(obj )  # 从对象到JSON