① 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