当前位置: 首页 > 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秒

相关文章:

  • Python(23)Python异常处理完全指南:从防御到调试的工程实践
  • Jenkins 简易使用记录
  • 天梯赛数据结构合集
  • Qt官方案例知识点总结(图形视图——Colliding Mice)
  • 极狐GitLab 账号限制有哪些?
  • 从数字化到智能化,百度 SRE 数智免疫系统的演进和实践
  • 第 5 期(进阶版):训练第一个 DDPM 模型(使用 CIFAR-10 数据集)
  • Kafka 时间轮
  • 杭州小红书代运营公司-品融电商:全域增长策略的实践者
  • U盘实现——双盘符实现
  • AI当前状态:有哪些新技术
  • 深入理解分布式缓存 以及Redis 实现缓存更新通知方案
  • Leetcode 2158. 每天绘制新区域的数量【Plus题】
  • 复现SCI图像增强(Toward fast, flexible, and robust low-light image enhancement.)
  • 高安全低功耗MCU:机器人控制系统的智能化与可靠性提升
  • Kubernetes》》k8s》》Namespace
  • 评测 Doubao-1.5-thinking-pro | 豆包·深度思考模型
  • 工程化实践:Flutter项目结构与规范
  • LeetCode 443 压缩字符串
  • 工厂方法模式详解及c++代码实现(以自动驾驶感知模块中的应用为例)
  • 五一假期出行预订进入高潮:酒店搜索热度翻倍,“请4休11”拼假带动长线游
  • 澳门世界杯“中日对决”,蒯曼击败伊藤美诚晋级女单决赛
  • 对话地铁读书人|来自法学教授的科普:读书日也是版权日
  • 海口市美兰区委副书记、区长吴升娇去世,终年41岁
  • 美国开始从叙利亚撤出数百人,分析人士担忧“伊斯兰国”威胁再起
  • 北京将严查大数据杀熟和强制搭售等五种网络销售违法行为