当前位置: 首页 > news >正文

1. python开发小笔记

本文件记录一些实用的python小知识,会一直更新

1. import路径

        1.1 python的import搜索路径可以用sys.path查看:

        import sys

        print(sys.path)

        1.2 python的搜索目录有:

  • 本脚本所在目录
  • 环境变量PYTHONPATH指定的目录
  • 标准库目录,通常在/usr/lib/python3*.zip 和 /usr/lib/python3.* 和 /usr/lib/python3.*/lib-dynload
  • 安装目录下.pth文件指定的路径
  • 第三方库目录

        1.3 为import指定目录

  • sys.path.appen("my/lib/path") #直接修改sys.path,在末尾增加
  • sys.path.insert(0,"my/lib/path) #同上,只是这里是插入
  • os.environ['PYTHONPATH'] += "my/lib/path" #修改环境变量,需要import os

2. 多线程模块threading

        2.1 示例

import threading
import timedef my_thread_fun():for i in range(1000):print("my-thread:",i)time.sleep(1)def main():thread = threading.Thread(target=my_thread_fun)thread.start()for i in range(1000):print("main:",i)time.sleep(1)main()

        2.2 创建一个新的线程主要是threading.Thread方法,线程函数由参数target指定,参数daemon默认为False,它表示就算主线程结束了,它也要等待分线程结束,整个程序才能结束;当daemon被指定为True时,当主线程结束,分线程也会立即结束:

        thread.Thread(target=my_thread_fun, daemon=True)

        2.3 Thread方法中的name成员可以指定线程的名字,可以通过threading.current_thread().name获取本线程的名字:

        thread.Thread(target=my_thread_fun, name="my thread")

        在my_thread_fun中,可以这样显示本线程名字:

...
def my_thread_fun():...print(threading.current_thread().name + ':' + i)

        2.4 判断线程是否结束,使用方法is_alive:

thread = threading.Thread(target=my_thread_fun)
thread.start()
...
if not thread.is_alive():print("my thread complete.")...

        2.5 阻塞线程执行,使用方法join():

  • thread.join() 一直阻塞
  • thread.join(1.0) 阻塞1秒
http://www.xdnf.cn/news/14743.html

相关文章:

  • 【Semantic Kernel核心组件】planner:大模型时代的智能任务编排引擎
  • ASP.NET常见安全漏洞及修复方式
  • ARINC818协议(五)
  • xxljob 执行器流程-笔记
  • PHP腾讯云人脸核身生成 SDK 接口调用步骤使用签名
  • Vue3中provide和inject的用法示例
  • opencv函数展示3
  • Git LFS 学习笔记:原理、配置、实践与心路历程
  • 直播人脸美型核心技术详解:卷积神经网络与图像增强在美颜SDK中的应用
  • pdfjs库使用记录1
  • Web3区块链网络中数据隐私安全性探讨
  • 深度解析生成对抗网络:原理、应用与未来趋势
  • #systemverilog# 进程控制问题#(八)关于#0 问题的使用(三)
  • 全志H5,NanopiKP1lus移植QT5.12记录
  • 如何在 Electron 应用中安全地进行主进程与渲染器进程通信
  • 通过特定协议拉起 electron 应用
  • electron 渲染进程按钮创建新window,报BrowserWindow is not a constructor错误;
  • 嵌入式设备网络的动态ID分配机制实现
  • 极狐GitLab 用户 API 速率限制如何设置?
  • CenterTrack
  • DNS解析失败怎么解决?
  • 【Spring Boot 源码学习】深入 ConfigurableEnvironment 的初始化过程
  • 论文阅读笔记——Mixtral of Experts
  • 中级社会工作者考试精选练习题
  • 深度学习-全连接神经网络-1
  • C++代码优化
  • 梯度下降代码
  • fatdds:传输层SHM和DATA-SHARING的区别
  • 数据结构|基数排序及八个排序总结
  • Python爬虫入门