包管理
使用 pipenv shell 和pipenv install后,需要手动切换python解释器位置,否则安装到虚拟环境中的包无法识别。
python虚拟管理工具——pipenv使用教程
Pipenv:新一代Python项目环境与依赖管理工具
基本
python中函数的定义和调用的先后顺序问题
python 国内镜像加速
designer.exe no qt platform plugin could be initialized
PYQT5 vscode联合操作 qtdesigner
PyQt 图解Qt Designer工具的使用方法,并封装exe文件
pyinstaller把Python打包成exe去掉黑窗doc窗口问题
SQLite可视化管理工具汇总
python 将数据写入SQLITE3数据库
vscode python 第三方库的智能提示
Python lambda介绍
Python List sort()方法
迭代器generator object Tokenizer.cut at 0x000001B7D3E28148(可以用循环打开,还可以用" ".join()的方式打开)
深入理解Python生成器(Generator)
python生成器多次遍历(一)------复制生成器
解决wordcloud导出图片不清楚
Python logger模块
Python语法学习记录(2):if else写在一行&其他简单逻辑符号简单mark
Mypy:Python静态类型
Python namedtuple
【python】cmd命令行程序下进入和退出python的方法
0 打包
Pyinstaller打包整个项目(打包资源文件+修改exe文件logo)
pyinstaller打包exe—打包实践
1 sys.argv
Python错误
Q1:当调试库文件打断点,不在当前工程目录下,会出现错误 Note: may be excluded because of “justMyCode” option (default == true).Try setting “justMyCode”: false in the debug configuration (e.g., launch.json).
A1:在调试配置文件launch.json中,添加 “justMyCode”: false,
2 python shell
2.1 在python shell中运行python文件的实现
这是测试文件的结构,python_example主文件夹,下面有example.py和一个subexample子文件夹,我要分别调用example.py和subexample.py
!
主要三段代码
1.import sys
此时默认读取和python shell一个文件夹下的python,若是程序放在别处,需添加文件所在路径。再导入文件。
2.sys.path.append(“G://python_example”)
最后第三步导入所要运行的文件,注意不要加上如.py的后缀,否则程序识别不出来。
3.from xxx(python文件名) import *
import sys
sys.path.append(r"J:\kicad project\scripts")
from pcb import kicad_test
2.2 在 Python shell 中重新导入模块
重新加载模块
倘若,更改了已经在 Python shell 中导入的模块,然后重新导入该模块,Python 会认为“我已经导入了该模块,不需要再次读取该文件”,所以更改将无效。
要解决这个问题,有以下几种方式:
最简单、最有效的方法:重新启动 Python shell。但是,这也有缺点,特别是丢失了 Python shell 名称空间中存在的数据以及其他导入模块中的数据。
对于简单的情况,可以使用 Python 的reload()函数。在许多情况下,在编辑一个模块之后就足够了。
对于更复杂的情况,重新加载被编辑的模块也需要重新加载其依赖/导入的模块(因为它们必须作为被编辑模块初始化的一部分进行初始化),所以 IPython 的autoreload扩展很有用。
PS:
下面主要介绍第 2 种方式 - reload(),其他方式自行尝试。
reload()是 Python 提供的一种简洁的方式,在不同的 Python 版本中有不同的表现形式:
在 Python 2.x 中,reload()是内置函数。
在 Python 3.0 - 3.3 中,可以使用imp.reload(module)。
在 Python 3.4 中,imp 已经被废弃,取而代之的是importlib。
>>> import importlib
>>> import hello
Hello, Python! # 修改前的内容
>>>
>>> importlib.reload(hello)
I am coming... # 修改后的内容
<module 'hello' from '/home/wang/Projects/hello.py'>
另外的参考
为防止两个模块互相导入的问题,Python默认所有的模块都只导入一次,如果需要重新导入模块,
Python2.7可以直接用reload(),Python3可以用下面几种方法:
方法一:基本方法
from imp import reload
reload(module)
方法二:按照套路,可以这样
import imp
imp.reload(module)
方法三:看看imp.py,有发现,所以还可以这样
import importlib
importlib.reload(module)
方法四:根据天理,当然也可以这样
from importlib import reload
reload(module)
获取文件路径
异常
excel
python读写excel表格 xlrd和xlwt
Python自动化办公:xlwt万字教程
xlwt.easyxf 配置
用python操作Excel表格的最佳方法!!!
python读写excel利器:xlwings 从入门到精通
零基础学习xlwings,看这篇文章就够了
文件处理
class
枚举enum
字典 dict
#super().__ init__()
浅谈Python的super().__ init__()
goto实现
简单代码逻辑可以用循环体内的break来达到类似goto的跳转目的,这里不赘述。复杂一点的逻辑,则可以采用try…except…达到goto的效果:自定义一个Exception的子类,例如:class GotoFailedLabelException(Exception),如果需要更多的label,就定义更多的Exception子类。在函数里,将可能需要跳转的代码用try包裹起来,在需要跳转的地方raise GotoFailedLabelException。在后文catch GotoFailedLabelException,并书写相关执行代码也可以根据需要决定要不要用finally想出了这个方法后,好奇为何全网都在推荐第三方的库,而不是这样用。一番搜索才发现自己还是太naive了,这分明就是官方推荐的做法:Design and History FAQ