RAW repl 功能录入

from machine import UART
import time
import ubinascii

# ==================== 配置区 ====================
UART_ID = 1
BAUDRATE = 115200
TX_PIN = 5
RX_PIN = 4
RAW_REPL_TIMEOUT_MS = 3000  # Raw REPL 握手与执行超时(ms)
# ================================================

uart = UART(UART_ID, baudrate=BAUDRATE, tx=TX_PIN, rx=RX_PIN)

def raw_read():
    time.sleep(0.1)
    bs=uart.read()
    if bs is not None:
        bsd=bs.decode()
        if bsd[2:-3]:
            return bsd[2:-3]
    return False
    
def raw_start():
    uart.write(b'\x03')
    time.sleep(0.1)
    uart.write(b'\x01')
    time.sleep(0.1)

def raw_command(data):
    uart.write(data)
    uart.write(b'\x04')
    return raw_read()
    
    
raw_start()
print(uart.read())

print(raw_command("import time"))
print(raw_command("m=time.time()"))
print(raw_command("print(m)"))
# 调用print 会有\r\n 且只有print才会返回信息 否则 b'OK\x04\x04>'
#所有 结尾\x04\x04 b'OK798\r\n\x04\x04>'

多行功能 【\n 只需要该符号实现换行】

code = b"""
import time
for i in range(3):
    print(i)
time.sleep(0.5)
print('done')
""" + b'\x04'


uart.write(code)
发表在 None | 留下评论

Micropython 文件读取 写入

文件读取 写入

from machine import UART
import time
uart = UART(1, baudrate=115200, tx=5, rx=4)
# v=uart.read()
# # "\r" 为分段
# print(v)
def base64_encode(data):
    return ubinascii.b2a_base64(data).strip()

def base64_decode(data):
    return ubinascii.a2b_base64(data)



#显示文件信息

def show_cmd(data):
    #模拟显示
    if data:
        for i in data:
            print(i)
    else:
        pass
    
def show_file(data):
    if len(data)>0:
        swap=data[0].strip("\'").split("\\n")
        show_cmd(swap)
    
#显示文件信息
        
def gc_collect():
    write_cmd("import gc",False)
    write_cmd("gc.collect()",False)
    
def read_cmd(remove_f=False,remove_e=False):
    bk=uart.read()
    bkli=bk.decode().split("\r\n")
    if remove_f:
        bkli[0]==remove_f
        del bkli[0]
    if remove_e:
        del bkli[-1]
    return bkli
    
    
def write_cmd(data,show_info=False):
    uart.write(data+"\r")
    time.sleep(0.1)
    vbk=read_cmd(data,True)
    if show_info:
        show_cmd(vbk)
    return vbk

def read_file(file_name):
    cmd=f'f=open({repr(file_name)},"r")'
    write_cmd(cmd,False)
    swap=write_cmd("f.read()",False)
    write_cmd("f.close()",False)
    show_file(swap)
    gc_collect()
    #文件显示

def write_file(file_name,data):
    cmd=f'f=open({repr(file_name)},"w")'
    write_cmd(cmd,False)
    write_cmd(f'f.write({repr(data)})',False)
    write_cmd("f.close()",False)
    gc_collect()
    
    
data="import time\nimport os\nprint(time.time())"
write_file("inf.py",data)
read_file("inf.py")
发表在 None | 留下评论

ubuntu安装deb软件 dpkg -i

sudo dpkg -i mi*.deb

上面是安装文件名为mi开头的deb软件

发表在 None | 留下评论

thinkphp中 前端 获得GET POST信息

前端显示

{:request()->get(“id/d”,2021)}

前端调用判断 可以先赋值

        <php>
            $year=request()->get('year/d',2025);
        </php>

         <option value="2023" <if condition="$year eq 2023">selected</if> >2023</option>

发表在 None | 留下评论

markitdown 文档转markdown

安装

pip install "markitdown[all]"  -i https://mirrors.aliyun.com/pypi/simple/
from markitdown import MarkItDown
from openai import OpenAI

# ✅ 通过 OpenAI 兼容接口连接本地 Ollama
ollama_client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # Ollama 不校验 key,填任意非空字符串即可
)

# 初始化 MarkItDown,绑定 Qwen3-VL-8B
md = MarkItDown(
    llm_client=ollama_client,
    llm_model="qwen3-vl:8b"
)

# ========== 使用示例 ==========

# 1. 扫描版 PDF 转 Markdown(VLM 逐页识别 + 结构还原)
pdf_result = md.convert("scanned_document.pdf")
print("=== PDF ===")
print(pdf_result.text_content)

# 2. Office 文档转 Markdown(docx/xlsx/doc/xls)
#    文本型内容直接解析,嵌入的图片自动交给 VLM 识别
docx_result = md.convert("report.docx")
xlsx_result = md.convert("data.xlsx")

# 3. 图片 OCR 转 Markdown
img_result = md.convert("screenshot.png")
print("=== IMAGE ===")
print(img_result.text_content)

# 💡 保存结果
with open("output.md", "w", encoding="utf-8") as f:
    f.write(pdf_result.text_content)
发表在 None | 留下评论