月度归档: 2024 年 11 月

  • python3.4.1适用的库列表

    altgraph (0.13)

    argcomplete (0.6.7)
    astropy (0.3.2)
    backports.ssl-match-hostname (3.4.0.2)
    beautifulsoup4 (4.3.1)
    binstar (0.5.3)
    bitarray (0.8.1)
    blaze (0.5)
    blz (0.6.2)
    bokeh (0.4.4)

    bottle (0.13.2)

    bottle-websocket (0.2.8)
    cdecimal (2.3)
    colorama (0.2.7)
    conda (3.5.2)
    conda-build (1.3.3)
    configobj (5.0.5)
    Cython (0.20.1)
    DataShape (0.2)
    docutils (0.11)
    Flask (0.10.1)
    future (0.12.1)

    future (0.16.0)
    greenlet (0.4.2)

    greenlet-1.1.3.post0.tar.gz(必须安装vs2010)

    gevent-websocket (0.10.1)
    h5py (2.3.0)
    ipython (2.1.0)
    itsdangerous (0.24)
    jdcal (1.0)
    Jinja2 (2.7.2)
    llvmpy (0.12.4)
    lxml (3.3.5)

    macholib (1.8)
    MarkupSafe (0.18)
    matplotlib (1.3.1)
    menuinst (1.0.3)
    mock (1.0.1)
    multipledispatch (0.4.3)
    networkx (1.8.1)
    nose (1.3.3)
    numba (0.13.1)
    numexpr (2.3.1)
    numpy (1.8.1)
    openpyxl (2.0.2)
    pandas (0.13.1)
    patsy (0.2.1)

    pefile (2017.8.1)
    pip (1.5.6)
    ply (3.4)

    playsound (1.3.0)
    psutil (2.1.1)
    py (1.4.20)
    pycosat (0.6.1)
    pycparser (2.10)
    pycrypto (2.6.1)
    pyflakes (0.8.1)

    pygame (2.0.0)
    Pygments (1.6)

    PyInstaller (3.4)
    pyparsing (2.0.1)
    pyreadline (2.0)
    pytest (2.5.2)
    python-dateutil (2.1)
    pytz (2014.3)

    pytz-2020.4
    PyYAML (3.11)
    pyzmq (14.3.0)

    pywin32-ctypes (0.0.1)
    requests (2.3.0)
    rope-py3k (0.9.4-1)
    runipy (0.1.0)
    scikit-image (0.9.3)
    scipy (0.14.0)
    setuptools (3.6)
    six (1.6.1)
    Sphinx (1.2.2)
    spyder (2.3.0rc)
    SQLAlchemy (0.9.4)
    sympy (0.7.5)
    tables (3.1.1)
    tornado (3.2.1)
    ujson (1.33)
    Werkzeug (0.9.4)
    xlrd (0.9.3)
    XlsxWriter (0.5.5)

  • win清理pycharm残留

    rd /s/q C:\Users\%USERNAME%\AppData\Roaming\PyCharm

  • 关于python3.4

    python3.4不支持fstring语句

    若要下载安装python3.4能够使用的库,可以下载时间在2016年以及以前的库文件进行安装

    Anaconda3-2.0.0-Windows-x86_64.exe自带的python版本是python3.4.1

    下载链接是:

    https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2.0.0-Windows-x86_64.exe

    python3.4安装playsound-1.3.0.tar.gz都可以正常使用,不需要安装其他库.这个库没有依赖.

  • anaconda历史版本下载列表

    https://kuyour.top/anaconda历史版本下载列表.txt

  • python代码里if __name__ == “__main__”:没有这个会怎么样

    在 Python 中,if __name__ == "__main__": 这个条件判断是非常重要的,特别是在模块被导入时。让我们详细探讨一下这个条件的作用和如果没有它会怎么样。

    作用

    1. 模块和脚本的区别
      • 当你直接运行一个 Python 文件时,Python 解释器将特殊变量 __name__ 设置为 "__main__"
      • 当你的 Python 文件被另一个 Python 文件导入时,__name__ 被设置为该文件的模块名。
    2. 保护代码块
      • if __name__ == "__main__": 这个条件判断确保了其中的代码只有在文件被直接运行时才会执行,而不是在被导入到另一个模块时执行。

    没有 if __name__ == "__main__": 会怎么样

    如果你省略了 if __name__ == "__main__": 这个条件判断,以下情况会发生:

    1. 代码总是执行
      • 无论文件是被直接运行还是被导入,文件中的所有代码都会执行。这意味着任何在全局作用域中的代码(不在函数或类定义中的代码)都会在导入时执行。
    2. 可能的副作用
      • 如果你的文件中包含了执行特定操作的代码(如创建窗口、启动服务器、打开文件等),这些操作会在模块被导入时执行,这可能不是你预期的行为。
      • 例如,如果你的 GUI 应用程序在导入时就创建了一个窗口,这可能会导致在其他模块中导入你的 GUI 模块时意外地弹出窗口。
    3. 测试和调试问题
      • 在开发过程中,你可能希望单独测试和调试模块中的函数或类,而不希望它们在导入时执行任何额外的代码。没有 if __name__ == "__main__": 会导致测试和调试变得更加复杂。

    示例

    假设你有以下模块 example.py

    # example.py
    def do_something():
        print("Doing something")
    
    print("This is always printed")
    
    if __name__ == "__main__":
        print("This is only printed when the module is run directly")
        do_something()
    • 如果你直接运行 example.py,输出将是:
      This is always printed
      This is only printed when the module is run directly
      Doing something
    • 如果你从另一个文件导入 example.py
      # another_file.py
      from example import do_something
      
      do_something()

      输出将是:

      This is always printed
      Doing something

      注意,"This is only printed when the module is run directly" 没有被打印,因为它在 if __name__ == "__main__": 块中。

    总之,使用 if __name__ == "__main__": 是一种良好的编程实践,它帮助你控制代码的执行环境,避免在模块被导入时产生意外的副作用。

  • python在windows系统上获取内存占用率

    import subprocess
    import re
    def get_memory_usage():
        # 执行 WMIC 命令并获取内存占用信息
        可用物理内存_info = subprocess.check_output("wmic OS get FreePhysicalMemory", shell=True).decode()
        总可见内存大小_info = subprocess.check_output("wmic OS get TotalVisibleMemorySize", shell=True).decode()
        # 使用正则表达式提取 FreePhysicalMemory 和 TotalVisibleMemorySize 的值
        free_memory = re.search(r'([0-9]+)', 可用物理内存_info).group(0)
        total_memory = re.search(r'([0-9]+)', 总可见内存大小_info).group(0)
        # 计算内存占用百分比
        try:
            memory_usage_percent_data = (1 - int(free_memory) / int(total_memory)) * 100
            memory_usage_percent='{:.3f}'.format(memory_usage_percent_data)
            return str(memory_usage_percent)+'%'
        except ZeroDivisionError:
            print("Error: Division by zero is not allowed.不允许除以零。")
            return None  # 或者可以设置为某个特定的错误代码或消息

     

  • python在windows系统上获取CPU占用率

    import subprocess
    import re
    def get_cpu_usage():
        # 执行 WMIC 命令并获取 CPU 占用率
        cpu_usage_info = subprocess.check_output("wmic cpu get loadpercentage", shell=True).decode()
        # 使用正则表达式提取 CPU 占用率的数值
        cpu_usage_match = re.search(r'([0-9]+)', cpu_usage_info)
        if cpu_usage_match:
            cpu_usage = int(cpu_usage_match.group(1))
            return str(cpu_usage)+'%'
        else:
            print("Failed to extract CPU usage information.提取CPU使用率信息失败.")
            return None

     

  • python在windows系统上使用socket获取ipv6地址

    def get_ipv6():
        # 用socket获取本机 IPv6 地址
        try:
            # 创建一个 socket 对象
            with socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) as s:
                # 连接到一个公共的地址来获取本机的 IPv6 地址
                s.connect(('2001:db8::1', 80))
                # 获取 socket 对象的地址信息
                ipv6 = s.getsockname()[0]
                return ipv6
        except Exception as e:
            print("Failed to get IPv6 address.获取ipv6地址失败,错误信息:", e)
            return None

     

  • python在windows系统上使用socket获取ipv4地址

    import socket
    def get_ipv4():
        # 用socket获取本机 IPv4 地址
        st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        try:       
            st.connect(('10.255.255.255', 1))
            ipv4 = st.getsockname()[0]
            return ipv4
        except Exception:
            ipv4 = '127.0.0.1'
        finally:
            st.close()
            # print(ipv4)
            return None

     

  • python 一个捕获异常的例子

        try:
            memory_usage_percent_data = (1 - int(free_memory) / int(total_memory)) * 100
            memory_usage_percent='{:.3f}'.format(memory_usage_percent_data)
            return str(memory_usage_percent)+'%'
        except ZeroDivisionError:
            print("Error: Division by zero is not allowed.不允许除以零。")
            return None  # 或者可以设置为某个特定的错误代码或消息
        else:
            pass
        finally:
            pass