Python--小细节(一)
1.关于每个py文件中
if __name__ == __main__: .....
每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量 __name__,当该模块被直接执行的时候,__name__ 等于文件名(包含后缀 .py );如果该模块 import 到其他模块中,则该模块的 __name__ 等于模块名称(不包含后缀.py)。
而 “__main__” 始终指当前执行模块的名称(包含后缀.py)。进而当模块被直接执行时,__name__ == 'main' 结果为真。
2.2.利用pyinstaller打包成exe
我的程序是checkfiles.py调用check_part1.py,同时还附加一个txt文件,在利用pyinstaller打包时,再dos窗口先cd到安装python中的Scripts路径,再使用pyinstaller命令:
pyinstaller -F XXX.py (选项)XXX.py 以此类推
例如: pyinstaller -F checkfiles.py -p check_part1.py
选项:
-F:表示生成单一的exe文件
-w:表示执行exe文件时去除背后的dos窗口 ps:建议最初试验时保留dos,可以查看是否有错误发生
-p:有些需要手动添加包的位置(dir1,dir2)多个地址时以分号分开
-i:加入图标
运行以后,会在Scripts目录下生成dist和build两个文件夹,exe在dist文件夹下。如果程序需要用到附加的文件则添加到dist文件夹中即可。
3.python查询字典最好用get
dict['key'] = xxx # 若不存在key会报错
dict.get('key') = xxx # 若不存在key返回None
4.try,except错误详细代码定位
import traceback
print(traceback.print_exc())
5.jinja模板中数组长度和循环变量
jinja模板不同于python语句
数组长度:{ variate | length }
循环变量:loop.index
在一个 for 循环块中你可以访问这些特殊的变量:
| 变量 | 描述 |
|---|---|
| loop.index | 当前循环迭代的次数(从 1 开始) |
| loop.index0 | 当前循环迭代的次数(从 0 开始) |
| loop.revindex | 到循环结束需要迭代的次数(从 1 开始) |
| loop.revindex0 | 到循环结束需要迭代的次数(从 0 开始) |
| loop.first | 如果是第一次迭代,为 True 。 |
| loop.last | 如果是最后一次迭代,为 True 。 |
| loop.length | 序列中的项目数。 |
| loop.cycle | 在一串序列间期取值的辅助函数。见下面的解释。 |
6.虚拟环境的重要性
就是当一些导入包版本不同时,相应的代码也会不同,两种版本的代码语句可能并不能互通。
最是人间留不住,朱颜辞镜花辞树

浙公网安备 33010602011771号