① python中 tmp什么意思
应该是一个少见的数据查询过程。
从数据集中查找cat等于cid的posts,降序存放到menus;
从数据集中查找id等于cid的cats,取第一个结果存放到cats;
最后返回[pid,cats,和menus、cats、pid组成的unicode字符串]的列表。
代码分析就只能是这样,具体是干什么的,只有看了完整的代码才知道,估计是个gui相关的。
② 如何将一整个python工程打包
打包成可执行文件的话,py2exe是不行的,看名字就知道,那是打包python2的,它不支持python3,用pyinstaller可以打包python3,教程也很简单,搜下一行命令就能打包了。
③ Python程序代码混淆、编译、打包、运行(桌面程序防破解向)
像Python这种解释性的语言,要想私有化部署的同时又保护好源码,就像是对于鱼和熊掌的追求。
虽然做不到尽善尽美,但是对代码进行混淆,增加一点破解的难度,或许能规避一些泄露的风险。
本次演示环境:linux
确保要发布的包根目录("demo")中有__main__.py文件,这个是程序执行入口。
编译
批量改名.pyc文件
移动.pyc文件
清理.py文件
清理__pycache__文件夹
打包成zip
运行时只要将zip文件作为参数即可
最终整合脚本
调用方式
对于在变量和函数名上的混淆有点小儿科,而对于跨文件的类名的混淆又太容易实现。
所以对于混淆程度的取舍,要视工程的规模而定。
2.1 混淆工具pyminifier
在原来的工具 pyminifier上修复了几个bug。
安装:
python3 安装
或者clone下来,自行安装
使用例子
2.2 源码变更
不同的配置对于源码的要求不同,以下是笔者踩过的坑。
其他混淆想法
结合混淆、编译和打包,尝试出以下发布脚本。
主要的思路 :创建一个工作目录tmp,然后在此目录下混淆、编译python代码,完成后把内容打包成pyc文件,再将pyc文件和其他配置文件移动到dist,发布dist即可。
混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解。
④ 如何将一整个python工程打包
1、下载并安装py2exe,可下载最新版本。
2、编写安装脚本,比较简单,不过多解释,如下:
Screenshot_setup.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
includes = ["encodings", "encodings.*"]
data_files = ['CameraDll.dll']
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes
}
}
setup(
version = "1.0",
description = "Screenshot Tool",
name = "Screenshot Tool",
options = options,
zipfile=None,
data_files = data_files,
console=[{"script": "Screenshot.py", "icon_resources": [(1, "Screenshot.ico")] }]
)
各参数含义见第5小节或执行python命令行下执行help(py2exe)查看。
3、打包程序:
a、将要找包的程序、文件和打包脚本放在同一目录下,如下:
E:\tmp\pyexe_tmp>tree /F
文件夹 PATH 列表
卷序列号码为 0007F240 101F:F68D
E:.
CameraDll.dll
screenshot.ico
Screenshot.py
screenshot_setup.py
没有子文件夹
E:\tmp\pyexe_tmp>
b、执行打包脚本:
E:\tmp\pyexe_tmp>python screenshot_setup.py py2exe
python screenshot_setup.py py2exe
running py2exe
creating E:\tmp\pyexe_tmp\build
creating E:\tmp\pyexe_tmp\build\bdist.win32
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\collect-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\bundle-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\temp
creating E:\tmp\pyexe_tmp\dist
*** searching for required moles ***
*** parsing results ***
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
writing byte-compilation script 'e:\tmp\tmp1ecbcw.py'
⑤ python中的temp
temp指临时文件夹。
很多临时文件放在这里,用来收藏夹,浏览网页的临时文件,编辑文件等,根据操作的过程进行临时保存的文件技术。
应定期删除各种应用程序在WindowsTemp文件夹中存储的临时文件,以清除上述这些零散的文本。还应删除其子目录中相应的所有文件。虽然很多文件的扩展名为".tmp",但它们其实是完整的DOC文件、HTML文件、甚至是图像文件。
其他临时文件夹:
1、suffix:定义文件名的后缀prefix:定义文件名的前缀dir:定义创建临时文件的目录
2、text:布尔值,为true,则文件以文本形式打开模式,否则(默认值)文件将以二进制模式打开
3、mkdtemp(suffix=None,prefix=None,dir=None):调用函数来创建和返回唯一的临时目录。返回值是目录的路径名。
参数与mkstemp相同,只是text参数是不接受。
⑥ Python无法创建文件夹,如何制定创建目录
这个是因为权限不够,如果你想在运行 Python 的文件夹下创建的话,需要使用 ./主目录,注意前面要有一个点,否则这个目录就会创建在根目录下面。如果你就是想在根目录下面创建的话,需要用 root 用户运行,也就是 sudo python xxxx.py ,这时这个“主目录”创建的位置是和 /mnt /usr /etc 等目录平级的,一般不推荐放在这里。
⑦ python中 tmp什么意思
这是一个随便取的变量名,意思“临时”。
语法
tmpfile()方法语法格式如下:
os.tmpfile
参数
无
返回值
返回一个临时文件对象。
⑧ PYTHON的问题
没调试,而且英文不太行,不知道是不是这样
就是从一个文件里读出所有的温度,然后输出一个由最低温度和最高温度组成的列表?
#from file getting lowest and highest temperature
import os
import sys
import re
lowHigh = []
if not os.path.exists(sys.argv[1]):
lowHigh = []
else:
with open(sys.argv[1], 'r') as f:
fCon = f.readlines()
tempList = [re.split(r's+', x.strip())[-1] for x in fCon]
lowHigh = [min(tempList), max(tempList)]
print lowHigh
⑨ tmpPos = 0在python中表示什么
PYTHONPATH 是python程序用来搜索模块的路径 path是系统环境变量 是服务器主机用于搜索可执行的程序的默认路径 目的不同
⑩ Python表示矩阵的方法分析
Python表示矩阵的方法分析
本文实例讲述了Python表示矩阵的方法。分享给大家供大家参考,具体如下:
在c语言中,表示个“整型3行4列”的矩阵,可以这样声明:int a[3][4];在python中一不能声明变量int,二不能列出维数。可以利用列表中夹带列表形式表示。例如:
表示矩阵 ,可以这样:
count = 1
a = []
for i in range(0, 3):
tmp = []
for j in range(0, 3):
tmp.append(count)
count += 1
a.append(tmp)
print a
结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
但是注意一点:初始化(赋值全部为0时),下面是错误的!!
tmp = []
for j in range(0, 3):
tmp.append(0)
a = []
for i in range(0, 3):
a.append(tmp)
print a
结果:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
原因:这样的列表tmp为同一个,改变任意行,其他行都会给随着改变,千万注意!!,下面正确:
a = []
for i in range(0, 3):
tmp = []
for j in range(0, 3):
tmp.append(0)
a.append(tmp)
print a