Python开发基础总结(七)数据库+FTP+字符编码+源码安全

举报
zhulin1028 发表于 2021/12/13 22:28:30 2021/12/13
【摘要】 目录 一、数据库的使用 二、FTP的使用 三、字符编码的使用 四、源码安全 v搜索公众号:zhulin1028后台回复:【Python1】【Python2】【Python3】【Python全栈】【爬虫】免费获取对应资料。 一、数据库的使用 1、数据库中的字段使用的utf8格式编码,但是读取出来却是问号。这个问题的解决可以...

目录

一、数据库的使用

二、FTP的使用

三、字符编码的使用

四、源码安全



  
  1. v搜索公众号:zhulin1028
  2. 后台回复:【Python1】【Python2】【Python3】【Python全栈】【爬虫】
  3. 免费获取对应资料。

一、数据库的使用

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。所以,一个字符串要转化为另一种格式可以:


  
  1. s = ‘中文’
  2. s.decode(fromcodec).encode(tocodec)

也可以直接使用:s.encode(tocodec)。这个时候,相当于默认调用了decode,并且使用的是默认的编码方式。

四、源码安全

  1. Python代码如果直接发布,可能会暴露源码。
  2. 一个方法是利用c扩展Python,来代替核心模块。
  3. 另一个折中的方法就是对源码进行编译,生成pyc或者pyo文件。这些事字节码文件。可能会被反编译。所以,可能需要研究一下Python的pyo生成和加载方式,来生成更安全的Python字节码。网上说可以修改Python源码的opcode。没有研究过。
  4. 命令:python -m compileall
  5. 也可以在Python中使用:
    
        
    1. import compileall
    2. compileall._dir('Lib/', force=True)
    3. # Perform same compilation, excluding files in .svn directories.
    4. import re
    5. compileall._dir('Lib/', rx=re.compile('/[.]svn'), force=True)

文章来源: zhulin1028.blog.csdn.net,作者:zhulin1028,版权归原作者所有,如需转载,请联系作者。

原文链接:zhulin1028.blog.csdn.net/article/details/121304191

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。