月度归档: 2024 年 11 月

  • linux下多条件查找文件,查找/etc目录下文件带有deepin字样的文件,同时以.conf为后缀的文件

    在Linux下,你可以使用find命令结合多个条件来查找文件。要查找/etc目录下包含deepin字样且以.conf为后缀的文件,你可以使用以下命令:

    find /etc -type f -name "*deepin*" -name "*.conf"

    这个命令的各个部分解释如下:

    • /etc:指定了搜索的起始目录。
    • -type f:指定只查找文件(不包括目录)。
    • -name "*deepin*":指定查找文件名中包含deepin字样的文件。
    • -name "*.conf":指定查找文件名以.conf为后缀的文件。

    这两个-name参数将联合使用,以匹配同时满足这两个条件的文件。注意,find命令的-name参数使用的是模式匹配,*代表任意数量的字符。

    执行这个命令后,它会列出所有在/etc目录及其子目录下满足上述条件的文件路径。如果你只想在/etc目录本身查找,不想搜索子目录,可以添加-maxdepth 1参数:

    find /etc -maxdepth 1 -type f -name "*deepin*" -name "*.conf"

    这将限制搜索范围只在/etc目录的第一层。

  • python 桌面时间

    代码来源:

    https://mp.weixin.qq.com/s/kuyObP50ZfsbZ9IKqp_IDw

    from tkinter import *
    import time, datetime
    from time import gmtime, strftime
    
    root =Tk()
    
    # Window Attributes
    root.overrideredirect(1)# 隐藏窗口边框
    root.wm_attributes("-transparentcolor","gray99")# 设置透明背景色
    
    running =True# 运行状态
    
    # 关闭窗口函数
    def close(event):
        global running
        running = False
    
    root.bind('<Escape>', close)# 绑定Esc键关闭窗口
    
    screen_width = root.winfo_screenwidth()# 获取屏幕宽度
    screen_height = root.winfo_screenheight()# 获取屏幕高度
    
    timeframe =Frame(root, width=screen_width, height=screen_height, bg="gray99")# 创建主框架
    timeframe.grid(row=0,column=0)
    
    tkintertime =StringVar()# 创建时间变量
    timelabel =Label(timeframe, textvariable=tkintertime, fg="white", bg="gray99", font=("NovaMono",40))# 创建时间标签
    timelabel.place(y=screen_height/2-60, x=screen_width/2, anchor="center")# 设置时间标签位置
    
    tkinterdate =StringVar()# 创建日期变量
    datelabel =Label(timeframe, textvariable=tkinterdate, fg="white", bg="gray99", font=("Bahnschrift",15))# 创建日期标签
    datelabel.place(y=screen_height/2+60, x=screen_width/2, anchor="center")# 设置日期标签位置
    
    while running:
        tkintertime.set(value=strftime("%H:%M:%S"))# 更新时间
        tkinterdate.set(value=strftime("%A, %d %B"))# 更新日期
        root.update_idletasks()# 更新窗口
        root.update()# 更新窗口
        time.sleep(1)  # 延迟1秒

     

  • 检测浏览器版本.js

    function detectIE() {
        var ua = window.navigator.userAgent;
        var msie = ua.indexOf('MSIE ');
        var trident = ua.indexOf('Trident/');
    
        if (msie > 0) { // IE 10 or older
            var ieVersion = parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
            console.log('当前浏览器版本:IE ' + ieVersion + ' detected');
            return ieVersion;
        }
        if (trident > 0) { // IE 11
            var rv = ua.indexOf('rv:');
            var ieVersion = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
            console.log('当前浏览器版本:IE ' + ieVersion + ' detected');
            return ieVersion;
        }
        console.log('检测到非IE浏览器\  Non-IE browser detected');
        return false;
    }
    
    var ieVersion = detectIE();
    
    if (ieVersion === 6) {
        console.log('Redirecting IE6 users to a special page...');
        window.location.href = 'ie6专属页面.html';
    }
    function getExplore(){
      var Sys = {};  
      var ua = navigator.userAgent.toLowerCase();  
      var s;  
      (s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1] :
      (s = ua.match(/msie ([\d\.]+)/)) ? Sys.ie = s[1] :  
      (s = ua.match(/edge\/([\d\.]+)/)) ? Sys.edge = s[1] :
      (s = ua.match(/firefox\/([\d\.]+)/)) ? Sys.firefox = s[1] :  
      (s = ua.match(/(?:opera|opr).([\d\.]+)/)) ? Sys.opera = s[1] :  
      (s = ua.match(/chrome\/([\d\.]+)/)) ? Sys.chrome = s[1] :  
      (s = ua.match(/version\/([\d\.]+).*safari/)) ? Sys.safari = s[1] : 0;  
      // 根据关系进行判断
      if (Sys.ie) return ('IE: ' + Sys.ie);  
      if (Sys.edge) return ('EDGE: ' + Sys.edge);
      if (Sys.firefox) return ('Firefox: ' + Sys.firefox);  
      if (Sys.chrome) return ('Chrome: ' + Sys.chrome);  
      if (Sys.opera) return ('Opera: ' + Sys.opera);  
      if (Sys.safari) return ('Safari: ' + Sys.safari);
      return 'Unkonwn';
    }
    var getExploreVersion = getExplore()
    console.log('当前浏览器版本:'+getExploreVersion);

     

  • win清理conda残余

    rd /s/q C:\Users\%USERNAME%\.anaconda
    rd /s/q C:\Users\%USERNAME%\AppData\Roaming\.anaconda
    rd /s/q C:\Users\%USERNAME%\.conda
    rd /s/q C:\Users\%USERNAME%\AppData\Local\conda
    del /s/q C:\Users\%USERNAME%\.condarc

  • win清理python残余

    rd /s/q %USERPROFILE%\AppData\Local\Python
    rd /s/q %USERPROFILE%\AppData\Local\pip
    reg delete “HKCU\Software\Python” /f
    rd /s/q %USERPROFILE%\AppData\Roaming\Python
    rd /s/q %USERPROFILE%\AppData\Roaming\pip

    rd /s/q “C:\Users\%USERNAME%\.ipython”

    rd /s/q “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.8”

    rd /s/q “C:\Users\Public\Documents\Python Scripts”

    rd /s/q “C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.8”

    rd /s/q “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.8”

    rd /s/q “C:\Users\rkey\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.5”

    rd /s/q “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.12”

  • flask创建一个database.py,里面只用来创建db,models文件夹下的post.py导入db,app里创建数据库表

    也算是一个避免循环导入的例子吧.

    来源:文心一言,但是我稍有修改.

    在 Flask 项目中,你可以通过以下步骤来组织代码,以便在 database.py 文件中创建数据库连接,并在 models/post.py 文件中定义模型,然后在 Flask 应用中创建数据库表。

    项目结构
    假设你的项目结构如下:

    my_flask_app/
    │
    ├── app.py
    ├── database.py
    ├── models/
    │ └── post.py
    └── ...

    1. 创建 database.py
    在 database.py 文件中,我们将创建一个 SQLAlchemy 数据库实例。
    # database.py

    from flask_sqlalchemy import SQLAlchemy
    db = SQLAlchemy()

    2. 创建 models/post.py
    在 models/post.py 文件中,我们将导入 database.py 中的 db 实例,并定义一个 Post 模型。
    # models/post.py

    from database import db
    from datetime import datetime
    
    class Post(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(100), nullable=False)
        content = db.Column(db.Text, nullable=False)
        date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    
    def __repr__(self):
        return f"Post('{self.title}', '{self.date_posted}')"

    3. 在 app.py 中配置 Flask 应用和数据库
    在 app.py 文件中,我们将配置 Flask 应用,创建数据库连接,并应用迁移来创建数据库表。
    # app.py

    from flask import Flask 
    from flask_sqlalchemy import SQLAlchemy 
    from database import db 
    from models.post import Post 
    app = Flask(__name__)
    
    # 配置数据库 URI
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db' # 你可以使用其他数据库,比如 MySQL, PostgreSQL 等
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    # 初始化数据库实例
    db.init_app(app)
    
    @app.route('/')
    def home():
        posts = Post.query.all()
        return f"Home Page<br>{[post.title for post in posts]}"
    
    if __name__ == '__main__':
        # 创建所有表
        with app.app_context():
            db.create_all()
    
        # 运行 Flask 应用
        app.run(debug=True)

    cmd命令提示符里运行以下命令:

    python app.py

    现在,你的 Flask 应用应该能够启动,并且会在 site.db 中创建 post 表。访问 http://127.0.0.1:5000/ 将显示主页,尽管目前还没有任何帖子。

    这样,你就成功地创建了一个 Flask 项目,其中包含数据库连接、模型定义和数据库表创建逻辑。

  • root.wm_iconbitmap()和root.iconbitmap()两个函数有啥区别

    在Tkinter中,root.wm_iconbitmap()root.iconbitmap() 都是用来设置窗口图标的方法,但它们之间存在一些差异:

    1. root.iconbitmap()
      • 这个方法是Tkinter提供的一个接口,用于设置窗口的图标。
      • 它只能加载.ico格式的图标文件,不支持其他格式如.png.jpg
      • 使用方法简单,只需要提供图标文件的路径即可:
        root.iconbitmap("/path/to/your/icon.ico")
    2. root.wm_iconbitmap()
      • 这个方法实际上是root.wm()方法的一个子命令,wm是Tkinter窗口方法(Window Manager)的缩写,用于与窗口管理器进行交互。
      • 它同样用于设置窗口图标,但调用方式与iconbitmap()不同,它需要通过wm方法来调用iconbitmap命令。
      • 使用wm_iconbitmap()时,你需要传递窗口实例和图标文件路径:
        root.wm_iconbitmap("/path/to/your/icon.ico")
      • 这个方法在功能上与iconbitmap()相似,但调用方式更为底层,因为它直接通过Tkinter的wm子系统与窗口管理器通信

    总结来说,root.iconbitmap()root.wm_iconbitmap()都可以设置窗口图标,但iconbitmap()是Tkinter提供的更高层的接口,而wm_iconbitmap()则通过wm子系统提供了一种更为底层的调用方式。在实际使用中,两者的效果相同,但iconbitmap()因其简单易用而更常被使用。

  • pip install -U这个参数-U是啥意思

    pip install -U 命令中的 -U 参数是用于更新指定的包到最新版本。这里的 -U--upgrade 的缩写。当你使用这个参数时,pip 会检查指定包的最新版本,并将其更新到最新版本,如果该包已经是最新版,则不会有任何变化。

    例如,如果你想要更新 requests 包,你可以使用以下命令:

    pip install -U requests

    这会将 requests 包更新到最新版本。如果你没有指定包名,pip install -U 会尝试更新所有已安装的包。

  • python库Nuitka-2.4.11依赖

    nuitka-2.4.11

     

    ordered-set-4.1.0

    zstandard-0.21.0

     


    Collecting nuitka
    Downloading Nuitka-2.4.11.tar.gz (3.7 MB)
    —————————————- 3.7/3.7 MB 1.4 MB/s eta 0:00:00
    Installing build dependencies … done
    Getting requirements to build wheel … done
    Preparing metadata (pyproject.toml) … done
    Collecting ordered-set>=4.1.0 (from nuitka)
    Downloading ordered_set-4.1.0-py3-none-any.whl.metadata (5.3 kB)
    Collecting zstandard>=0.15 (from nuitka)
    Downloading zstandard-0.21.0-cp37-cp37m-win_amd64.whl.metadata (3.0 kB)
    Downloading ordered_set-4.1.0-py3-none-any.whl (7.6 kB)
    Downloading zstandard-0.21.0-cp37-cp37m-win_amd64.whl (659 kB)
    —————————————- 659.7/659.7 kB 6.0 MB/s eta 0:00:00
    Building wheels for collected packages: nuitka
    Building wheel for nuitka (pyproject.toml) … done
    Created wheel for nuitka: filename=Nuitka-2.4.11-cp37-cp37m-win_amd64.whl size=3402958 sha256=aa8e430bd06ad97a6d2eb25fc9e19b7915d2d5b14a0e401245907b8895952af7
    Stored in directory: c:\users\rkey\appdata\local\pip\cache\wheels\8c\89\72\e408cd495b3903ecbad851052183da7c128679edba64c98f50
    Successfully built nuitka
    Installing collected packages: zstandard, ordered-set, nuitka
    Successfully installed nuitka-2.4.11 ordered-set-4.1.0 zstandard-0.21.0

  • C语言】自己写的C语言的时间函数

    写于 2020-10-06 20:37:19,当时发布在csdn上。
    #include<stdio.h>
    #include<time.h>
    int gTime(){
        //获取系统时间
        int year,month,day,hour,minutes,second;
        time_t t = time(NULL);
        year = t/86400/365+1970;
        month = t/86400/30%12+4;
        day = t/86400%30+5;//一天等于86400秒,即3600*24
        hour = t%(3600*24)/3600+8;//加8正好是中国的时区时间的小时,不知道为啥。
        minutes = t%3600/60;
        second = t%60;
            printf("t:%d",t);
    		printf("year:%d",year);
    		printf("month:%d",month);
    		printf("day:%d",day);
    		printf("hour:%d",hour);
    		printf("minutes:%d",minutes);
    		printf("second:%d",second);
    		printf("%d年%d月%d日  %d:%d:%d",year,month,day,hour,minutes,second);
    		return year,month,day,hour,minutes,second;
    }
    以上是C语言获取时间的函数,自己写的。
    想要调用的时候,自己在main函数里调用一下。