作者: kukey-admin

  • python百度orc识别

    from aip import AipOcr
    import chardet
    """定义常量"""
    APP_ID = ''
    API_KEY = ''
    SECRET_KEY = ''
    
    """初始化对象"""
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
    """读取图片"""
    def get_file_content(filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()
    
    image = get_file_content('image.png')
    
    """调用通用文字识别接口, 识别本地图像"""
    result = client.basicGeneral(image)
    print(result)
    # 打印每行文字
    for item in result['words_result']:
        print(item['words'])
    
    # 将每行文字拼接成一个整体
    string_text = ""
    for item in result['words_result']:
        string_text += item['words']
    print('string_text:', string_text)

     

     

  • 导出python包成wheel文件

     

    import subprocess
    def export_package_to_whl(package_name, target_directory):
        command = f"pip wheel --wheel-dir={target_directory} {package_name}"
        subprocess.call(command, shell=True)
    #导出requests包为.whL文件
    export_package_to_whl("requests", "path/to/target/directory")

     

  • js遍历当前网页所有的cookie存入一个数组中

     

    如果你想要获取当前网页真的所有cookie的话,下面的代码没啥用.因为我发现有些cookie取不出来.只能手动.

    var arr=[];
    var cookies=document.cookie;
    // console.log("未截取时"+cookies);
    while(cookies.indexOf(';') != -1){
    var a = cookies.slice(0,cookies.indexOf(';'));
    arr.push('document.cookie="'+a+'"');
    cookies=cookies.slice(cookies.indexOf(';')+1);
    console.log(arr);
    // console.log("剩余的"+cookies);
    }
    arr.push('document.cookie="'+cookies+'"');
    var str=arr.join(';').replaceAll('" ','"');
    console.log(str);
    console.log(str.length);

     

    var arr=[];
    var cookies=document.cookie;
    console.log("未截取时"+cookies);
    while(cookies.indexOf(';') != -1){
    var a = cookies.slice(0,cookies.indexOf(';'));
    arr.push(a);
    cookies=cookies.slice(cookies.indexOf(';')+1);
    console.log(arr);
    console.log("剩余的"+cookies);
    }
    arr.push(cookies);

  • opencv-python

    import cv2
    print(cv2.getVersionString())
    
    image = cv2.imread("1.png")#从图像文件中读取图像数据。返回图片的长度、宽度和颜色通道数(1:灰度图像,3:彩色图像【红、绿、蓝三个颜色通道】,4:alpha 通道)
    print(image.shape)
    
    cv2.imshow("image",image)#显示图像
    cv2.waitKey()#等待输入。在弹出的窗口中输入任意键,窗口关闭。

    import cv2
    print(cv2.getVersionString())
    
    image = cv2.imread("1.png")#从图像文件中读取图像数据。返回图片的长度、宽度和颜色通道数(1:灰度图像,3:彩色图像【红、绿、蓝三个颜色通道】,4:alpha 通道)
    
    crop = image[10:170, 40:200]#截取一个区块。从x坐标的10到170,y坐标的40到200这个区块截取出来
    cv2.imshow("crop",crop)
    cv2.waitKey()

    import cv2
    import numpy as np
    
    image = np.zeros([300,300,3], dtype=np.uint8)#画一个画布
    
    cv2.imshow("image",image)
    cv2.waitKey()

    import cv2
    import numpy as np
    
    #画一个画布
    image = np.zeros([400,400,3], dtype=np.uint8)
    
    '''
    cv2.line()//画线
    cv2.circle()//画圆
    cv2.rectangle()//长方形
    cv2.ellipse()//椭圆
    cv2.putText(图像源,文字,(x坐标开始点,x坐标结束点),字体序号默认0,缩放系数默认1,颜色值,粗细值,线条类型1实线)//文字绘制
    '''
    
    #cv2.line(图像源, (x坐标开始点,x坐标结束点),(y坐标开始点,y坐标结束点),颜色值,粗细值)
    cv2.line(image, (100,200),(250,250),(255,0,0),2)
    
    cv2.rectangle(image,(30,100),(60,150),(0,255,0),2)
    
    cv2.circle(image,(60,60),30,(0,0,213),3)
    
    cv2.ellipse(image,(256,256),(100,50),0,0,180,(20,213,79),-1) #线型-1表示填充
    
    cv2.putText(image, "hello", (100,50),0,1,(255,255,255),2,1)
    
    cv2.imshow("image",image)
    cv2.waitKey()

     

  • kivy

    import kivy
    kivy.require('1.0.6') # 注意要把这个版本号改变成你现有的Kivy版本号!
    
    from kivy.app import App # 译者注:这里就是从kivy.app包里面导入App类
    from kivy.uix.label import Label # 译者注:这里是从kivy.uix.label包中导入Label控件,这里都注意开头字母要大写
    
    class MyApp(App):
    
        def build(self): # 译者注:这里是实现build()方法
            return Label(text='Hello world') # 译者注:在这个方法里面使用了Label控件
    
    if __name__ == '__main__':
        MyApp().run() # 译者注:这里就是运行了。
    
    '''
    译者注:这一段的额外添加的备注是给萌新的.
    就是要告诉萌新们,一定要每一句每一个函数每一个变量甚至每一个符号,都要读得懂!!!
    如果是半懂不懂的状态,一定得学透了,要不然以后早晚得补课.
    这时候又让我想起了结构化学。
    总之更详细的内容后面会有,大家加油。
    '''

     

  • html使用flex布局实现的实时计算字符串长度功能

    html

    <!DOCTYPE html>
    <html lang="zh">
      <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>实时计算字符串长度</title>
        <link rel="stylesheet" href="样式.css" />
        <script src="脚本.js" async></script>
      </head>
      <body>
        <div class="容器">
          <div class="左"></div>
          <div class="中">
            <textarea class="文本域" id="文本域" placeholder="请输入你要处理的文字">
            </textarea>
            <span class="显示" id="显示"></span>
          </div>
          <div class="右"></div>
        </div>
      </body>
    </html>

     

    css

    * {
      margin: 0;
      padding: 0;
      font-family: "Arial", sans-serif;
    }
    body{
      background-color: coral;
    }
    
    .容器 {
      margin: 20px;
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap; /* 允许换行 */
      gap: 10px; /*设置行与列之间的间隙*/
    }
    
    .左 {
      width: 10%;
      height: 100%;
      flex: 1 1 auto;
    }
    
    .中 {
      width: 80%;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      flex: 1 1 60%;
      align-items: flex-start
    }
    
    .文本域 {
      width: 100%;
      height: 300px;
    }
    
    .右 {
      width: 10%;
      height: 100%;
      flex: 1 1 auto;
    }
    /* 超小型设备(电话,600px 及以下) */
    
    @media only screen and (max-width: 600px) {
      .文本域 {
        width: 90%;
        height: 300px;
      }
      .中 {
        width: 100%;
        flex: 1 1 100%;
      }
    }

     

    js

      var 文本域 = document.getElementById("文本域");
      文本域.innerHTML = "";
      文本域.style.resize = "none";
      文本域.style.fontSize = "18px";
    
      var 显示 = document.getElementById("显示");
      显示.innerHTML = "";
    
      文本域.addEventListener("input", function () {
        // 获取文本域的值
        var text = 文本域.value;
        // 计算并显示字数
        显示.innerHTML = "总长度:" + text.length;
      });

     

  • 使用flex布局和媒体查询,当屏幕较小时,让中间独占一行

    技巧就在于在指定屏幕范围时,让需要独占一行的元素的width:100%;flex:1 1 100%;

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
      </head>
      <style>
        *{
            margin: 0;
            padding: 0;
        }
        .content{
            width: 100%;
            height: 100%;
            border: 1px red solid;
            display: flex;
            flex-direction: row;
            justify-content:space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
        }
        .left{
            width: 20px;
            height: 20px;
            background-color: blue;
            flex: 1 1 auto;
        }
        .middle{
            width: 20px;
            height: 20px;
            background-color: red;
            flex: 1 1 60%;
        }
        .right{
            width: 20px;
            height: 20px;
            background-color: rgb(129, 129, 105);
            flex: 1 1 auto;
        }
        @media only screen and (max-width: 600px) {
        .middle {
            width: 100%;
            flex: 1 1 100%;
          }
    }
      </style>
      <body>
        <div class="content">
          <div class="left"></div>
          <div class="middle"></div>
          <div class="right"></div>
        </div>
      </body>
    </html>

     

  • 同步时间-批处理

    @ECHO OFF
    ::网址:nat.ee
    ::批处理:荣耀&制作 QQ:1800619
    >NUL 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    IF '%errorlevel%' NEQ '0' (
    GOTO UACPrompt
    ) ELSE ( GOTO gotAdmin )
    :UACPrompt
    ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    ECHO UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    EXIT /B
    :gotAdmin
    IF EXIST "%temp%\getadmin.vbs" ( DEL "%temp%\getadmin.vbs" )
    title nat.ee
    mode con: cols=32 lines=12
    color 17
    :menu
    CLS
    ECHO           NTP时间同步
    ECHO.
    SET Parameters=HKLM\SYSTEM\CurrentControlSet\services\W32Time\Parameters
    SET NtpClient=HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient
    ::删除服务配置信息
    SET "scte=sc triggerinfo w32time delete > NUL"
    ::创建服务默认配置
    SET "sctd=sc triggerinfo w32time start/domainjoin > NUL"
    ::创建服务配置:联网启动/不联网停止
    SET "sctn=sc triggerinfo w32time start/networkon stop/networkoff > NUL"
    ::设置服务模式:自动运行
    SET "scca=sc config W32Time start= auto > NUL"
    ::设置服务模式:手动运行
    SET "sccd=sc config W32Time start= demand > NUL"
    ::启动服务
    SET "sa=net start w32time 2>NUL"
    ::停止服务
    SET "so=net stop w32time 2>NUL"
    for /f "skip=1 tokens=3* delims=, " %%i in ('REG QUERY "%Parameters%" /v "NtpServer"') DO (SET address=%%i)
    for /f %%s in ('wmic service where "name='w32time'" get state^|findstr /c:"Stopped" /c:"Running" /c:"Paused"') DO (SET servicestatus=%%s)
    IF "%servicestatus%" == "Running" (ECHO Time状态:运行)
    IF "%servicestatus%" == "Stopped" (ECHO Time状态:停止)
    IF "%servicestatus%" == "Paused" (ECHO Time状态:暂停)
    ECHO NTP地址:%address%
    ECHO.
    ECHO 1.启动
    ECHO 2.重启
    ECHO 3.终止
    ECHO 4.设置
    ECHO 5.退出
    ECHO.
    choice /C:12345 /N /M "请输入你的选择 [1,2,3,4,5]":
    if errorlevel 5 EXIT
    if errorlevel 4 GOTO:config
    if errorlevel 3 GOTO:stop
    if errorlevel 2 GOTO:restart
    if errorlevel 1 GOTO:start
    ::启动
    :start
    CLS
    %scte%
    %sctn%
    %scca%
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "1" /f  > nul
    %sa%
    TIMEOUT 3 >NUL
    GOTO:menu
    
    ::重启
    :restart
    CLS
    %scte%
    %sctn%
    %scca%
    %so%
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "1" /f  > nul
    %sa%
    TIMEOUT 3 >NUL
    GOTO:menu
    
    ::终止
    :stop
    CLS
    %scte%
    %sctd%
    %sccd%
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "0" /f  > nul
    %so%
    TIMEOUT 3 >NUL
    GOTO:menu
    
    ::设置
    :config
    CLS
    ECHO 1.设置NTP服务器(域名/IP)地址
    ECHO 留空默认ntp1.aliyun.com
    ECHO 输入地址,按回车(Enter)
    ECHO.
    set /p NtpServer=地址:
    IF "%NtpServer%" == "" (
    ECHO 使用默认 ntp1.aliyun.com
    set NtpServer=ntp1.aliyun.com
    TIMEOUT 3 >NUL
    )
    CLS
    ECHO 2.设置时间同步更新间隔
    ECHO 留空默认3600秒(1小时)
    ECHO 输入(多少秒),按回车(Enter)
    ECHO.
    set /p SpecialPollInterval=数值(秒):
    IF "%SpecialPollInterval%" == "" (
    ECHO 使用默认3600秒
    set SpecialPollInterval=3600
    TIMEOUT 3 >NUL
    )
    Reg add "%Parameters%" /v "Type" /t REG_SZ /d "NTP" /f  > NUL
    Reg add "%Parameters%" /v "NtpServer" /t REG_SZ /d "%NtpServer%,0x1" /f  > NUL
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "1" /f  > nul
    Reg add "%NtpClient%" /v "CrossSiteSyncFlags" /t REG_DWORD /d "2" /f  > NUL
    Reg add "%NtpClient%" /v "EventLogFlags" /t REG_DWORD /d "0" /f  > NUL
    Reg add "%NtpClient%" /v "ResolvePeerBackoffMinutes" /t REG_DWORD /d "15" /f  > NUL
    Reg add "%NtpClient%" /v "ResolvePeerBackoffMaxTimes" /t REG_DWORD /d "7" /f  > NUL
    Reg add "%NtpClient%" /v "SpecialPollInterval" /t REG_DWORD /d "%SpecialPollInterval%" /f  > NUL
    CLS
    %scte%
    %sctn%
    %scca%
    %so%
    %sa%
    ECHO 完成。
    TIMEOUT 3 >NUL
    GOTO:menu
    EXIT

     

  • win7-批处理

    @ECHO OFF
    ::网址:nat.ee
    ::批处理:荣耀&制作 QQ:1800619
    >nul 2>&1 "%SYSTEMROOT%\system32\caCLS.exe" "%SYSTEMROOT%\system32\config\system"
    if '%errorlevel%' NEQ '0' (
    GOTO UACPrompt
    ) ELSE ( GOTO gotAdmin )
    :UACPrompt
    ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    ECHO UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B
    :gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    title nat.ee
    mode con: cols=36 lines=8
    color 17
    SET "wall=HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules"
    SET "rdp=HKLM\SYSTEM\ControlSet001\Control\Terminal Server"
    :Menu
    CLS
    ECHO.
    ECHO 1.修改远程端口
    ECHO.
    ECHO 2.修改用户密码
    ECHO.
    ECHO 3.重启计算机
    ECHO.
    choice /C:123 /N /M "请输入你的选择 [1,2,3]":
    if errorlevel 3 GOTO:Restart
    if errorlevel 2 GOTO:Password
    if errorlevel 1 GOTO:RemotePort
    :RemotePort
    CLS
    ECHO           修改远程桌面端口
    ECHO.
    ECHO 输入“q”返回主菜单
    ECHO 留空默认使用 3389
    ECHO 按回车键(Enter)确定
    ECHO.
    SET /P "Port=自定义范围(1-65535):"
    ECHO;%Port%|find " "&&goto:RemotePort
    IF "%Port%" == "q" (GOTO:Menu)
    IF "%Port%" == "0" (GOTO:RemotePort)
    IF "%Port%" == "" (SET Port=3389)
    IF %Port% LEQ 65535 (
    Reg add "%rdp%\Wds\rdpwd\Tds\tcp" /v "PortNumber" /t REG_DWORD /d "%Port%" /f  > nul
    Reg add "%rdp%\WinStations\RDP-Tcp" /v "PortNumber" /t REG_DWORD /d "%Port%" /f  > NUL
    Reg add "%wall%" /v "{338933891-3389-3389-3389-338933893389}" /t REG_SZ /d "v2.29|Action=Allow|Active=TRUE|Dir=In|Protocol=6|LPort=%Port%|Name=Remote Desktop(TCP-In)|" /f
    Reg add "%wall%" /v "{338933892-3389-3389-3389-338933893389}" /t REG_SZ /d "v2.29|Action=Allow|Active=TRUE|Dir=In|Protocol=17|LPort=%Port%|Name=Remote Desktop(UDP-In)|" /f
    CLS
    ECHO.
    ECHO 修改成功。
    ECHO 请牢记,你的远程端口是: %Port% 
    ECHO 重启计算机生效。
    TIMEOUT 5 >NUL
    GOTO:Menu
    ) ELSE (
    CLS
    ECHO.
    ECHO 错误端口:%Port% 
    ECHO 大于所设置的范围,
    ECHO 请在“1-65535”内。
    TIMEOUT 3 >NUL
    GOTO:RemotePort
    )
    :Password
    CLS
    ECHO 修改当前用户:%username%的密码!
    ECHO.
    ECHO 输入“q”返回主菜单
    ECHO 按回车键(Enter)确定
    ECHO.
    SET /p pwd1=请输入密码:
    IF "%pwd1%" == "q" (GOTO:Menu)
    CLS
    ECHO.
    ECHO 输入“q”返回主菜单
    ECHO 按回车键(Enter)确定
    ECHO.
    SET /p pwd2=请再次输入密码:
    IF "%pwd2%" == "q" (GOTO:Menu)
    IF "%pwd1%" == "%pwd2%" (
    net user "%username%" "%pwd2%"||PAUSE&&GOTO:Password
    ECHO.
    TIMEOUT 3 >NUL
    GOTO:Menu
    ) ELSE (
    CLS
    ECHO.
    ECHO 密码错误,请重新输入。
    TIMEOUT 3 >NUL
    GOTO:Password
    )
    :Restart
    CLS
    ECHO 正在倒计时重启……
    TIMEOUT /t 5
    shutdown.exe /r /f /t 0
    EXIT

     

  • python tkinter把菜单项的代码单独整成一个py文件,在主代码里引入

    来源:https://yiyanapp.baidu.com/talk/share?shareId=EWdqrEWHXk8iC&UK=NpPDHztRDAf359YiuNCkfg&vp=0&sk=690efbc2

    在Tkinter中,将菜单项(或其他GUI组件)的代码单独整理成一个Python文件,并在主代码中引入,是一种很好的模块化编程实践。这样做可以提高代码的可读性、可维护性和复用性。

    以下是如何将菜单项代码单独整理成一个文件,并在主代码中引入的示例:

    1. 创建菜单项模块(例如:menu_items.py

    首先,你需要创建一个新的Python文件,比如命名为menu_items.py,并在这个文件中定义你的菜单项。这个模块可以返回一个配置好的菜单对象,或者直接在主窗口中添加菜单项。

    # menu_items.py
    
    import tkinter as tk
    from tkinter import Menu
    
    def create_menu(root):
        # 创建一个菜单栏
        menu_bar = Menu(root)
        
        # 创建一个文件菜单
        file_menu = Menu(menu_bar, tearoff=0)
        file_menu.add_command(label="新建", command=lambda: print("新建文件"))
        file_menu.add_command(label="打开", command=lambda: print("打开文件"))
        file_menu.add_separator()
        file_menu.add_command(label="退出", command=root.quit)
        
        # 将文件菜单添加到菜单栏
        menu_bar.add_cascade(label="文件", menu=file_menu)
        
        # 可以继续添加其他菜单...
        
        # 将菜单栏添加到根窗口
        root.config(menu=menu_bar)
    
    # 注意:这个模块本身不会创建窗口或执行任何GUI操作,
    # 它只是定义了一个函数,该函数接收一个Tk根窗口作为参数,并为其添加菜单。
    

    2. 在主代码中引入菜单项模块

    然后,在你的主Tkinter代码文件中,你可以导入这个menu_items模块,并使用它提供的create_menu函数来为你的Tk根窗口添加菜单。

    # main.py
    
    import tkinter as tk
    from menu_items import create_menu
    
    def main():
        # 创建Tk根窗口
        root = tk.Tk()
        root.title("主窗口")
        
        # 调用menu_items模块中的create_menu函数来添加菜单
        create_menu(root)
        
        # 这里可以添加其他GUI组件...
        
        # 进入Tkinter主事件循环
        root.mainloop()
    
    if __name__ == "__main__":
        main()
    

    在这个示例中,menu_items.py模块定义了一个create_menu函数,该函数负责创建一个菜单栏并将其添加到传入的Tk根窗口中。然后,在main.py文件中,我们导入了menu_items模块,并在主函数中调用了create_menu函数,将Tk根窗口作为参数传递给它,从而在我们的主窗口中添加了菜单。