目錄
一、資料庫的使用
二、FTP的使用
三、字符編碼的使用
四、原始碼安全
v搜索公眾號:zhulin1028
后臺回復:【Python1】【Python2】【Python3】【Python全堆疊】【爬蟲】
免費獲取對應資料,
一、資料庫的使用
1、資料庫中的欄位使用的utf8格式編碼,但是讀取出來卻是問號,這個問題的解決可以通過在查詢的時候指定編碼方式來解決,只要執行sql陳述句:Query_Execsql(pdb, "SET NAMES 'utf8'");
注意,這個需要在連接后馬上進行,并且,在其他的操作中,會一直使用這種編碼,除非再次更改,
2、fetchone():回傳一條記錄,fetchall():回傳所有的記錄,
3、可以使用一個簡單的方法獲取所有的記錄:
cur.execute(sql)
for tel, name, pwd in cur:
print tel, name, pwd
二、FTP的使用
Python的標準模塊ftplib就可以支持FTP,
幾個函式:
FTP(host='', user='', passwd='', acct='', timeout=_GLOBAL_DEFAULT_TIMEOUT):如果引數中有user,則Connect();如果同時也有user,則login(),如果沒用這些引數,后要自己呼叫connect和login,
connect(self, host='', port=0, timeout=-999):如果埠不是標準埠,則要手動呼叫connect,
login(user = '', passwd = '', acct = ''):登陸,
pwd():獲得當前的作業路徑,
cwd(path):更改當前的作業路徑,
dir(path,cb):顯示目錄中的內容,cb為檔案的處理函式,會傳遞給retrlines,這個函式可以獲取一個目錄下的所有的內容,
retrlines(self, cmd, callback = None):下載文本檔案,cmd的形式為“RETR FILENAME”,callback是一個函式,要處理文本檔案的每一個行,這里一個問題,如果直接用file的write方法,則會丟失換行符,而又沒有writeline函式,
retrbinary(self, cmd, callback, blocksize=8192, rest=None):下載二進制檔案,cmd的形式為“RETR FILENAME”,callback是一個函式,要處理文本檔案的每一個塊,默認大小事8k,但是可以更改,
storlines(self, cmd, fp, callback=None):上傳文本檔案,cmd的形式為“STOR FILENAME”,fp是一個檔案物件,必須有readline方法,callback:每傳送一行,就會呼叫這個函式,
storbinary(self, cmd, fp, blocksize=8192, callback=None, rest=None): 上傳二進制檔案,cmd的形式為“STOR FILENAME”,fp是一個檔案物件,必須有read(num_bytes)方法,默認大小事8k,但是可以更改,
quit():退出,
三、字符編碼的使用
encode是將Unicode轉化為str,decode是將字串轉化為Unicode,所以,一個字串要轉化為另一種格式可以:
s = ‘中文’
s.decode(fromcodec).encode(tocodec)
也可以直接使用:s.encode(tocodec),這個時候,相當于默認呼叫了decode,并且使用的是默認的編碼方式,
四、原始碼安全
- Python代碼如果直接發布,可能會暴露原始碼,
- 一個方法是利用c擴展Python,來代替核心模塊,
- 另一個折中的方法就是對原始碼進行編譯,生成pyc或者pyo檔案,這些事位元組碼檔案,可能會被反編譯,所以,可能需要研究一下Python的pyo生成和加載方式,來生成更安全的Python位元組碼,網上說可以修改Python原始碼的opcode,沒有研究過,
- 命令:python -m compileall,
- 也可以在Python中使用:
import compileall compileall._dir('Lib/', force=True) # Perform same compilation, excluding files in .svn directories. import re compileall._dir('Lib/', rx=re.compile('/[.]svn'), force=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/380942.html
標籤:其他
上一篇:Java快取請求元素集
下一篇:nodejs如何找到行程ID
