pyc文件生成和禁止 执行系统命令 时间模块使用 hashlib模块使用 数据库连接

2015-04-18 14:32:00
admin
原创 2487
摘要:pyc文件生成和禁止 执行系统命令 时间模块使用 hashlib模块使用 数据库连接

一、pyc文件生成和禁止

1、pyc文件是py文件编译后生成,是一种跨平台的字节码,加载和执行速度非常快;

2、pyc文件不能看到源码,所以商业软件可以通过发布pyc文件防止源码泄露;

3、pyc文件跟python版本相关,基本不能向前兼容,旧版本python不能执行新版本pyc文件;


生成单个pyc文件:

import py_compile

py_compile.compile('pyfile')


批量生成pyc文件:

import compileall
compileall.compile_dir('pydir')


禁止生成pyc文件:

import sys
sys.dont_write_bytecode = True


二、执行系统命令

1、os.system不能返回命令输出,命令输出直接输出到了控制台,而是返回命令返回值;

2、os.popen返回命令管道文件,调用管道文件close方法获取命令返回值,如果是0则返回None;


import os
print os.system('ls -al')
output = os.popen('ls -al')
for line in output:
    print line,
print output.close()


三、时间模块使用

time模块:

1、time.sleep(secs),休眠进程,参数是浮点数;

2、time.time(),返回当前时间戳,返回值是浮点数;

3、time.struct_time,结构体最小成员是秒,不能表示毫秒;

4、time.localtime([secs]),将时间戳转换为本地时间的结构体;

5、time.mktime(time.struct_time),将时间结构体转换为时间戳;

6、time.strftime(format[, t]),格式化时间,比如time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())

7、time.clock(),windows返回第一次调用以来的墙上时间,linux返回进程启动以来消耗的cpu时间,结果都以秒为单位;


datetime.datetime日期时间类:

1、当前日期时间:datetime.datetime.today()

2、当前日期时间:datetime.datetime.fromtimestamp(time.time())

3、日期时间替换:datetime.datetime.replace(year,month,day)

4、日期时间加减:delta=datetime.timedelta(weeks,days...), newDate=date+delta

5、日期时间比较:datetime1<datetime2, datetime1>datetime2

6、格式化输出:datetime.datetime.strftime('%Y-%m-%d %H:%M:%S')

7、转换为秒数:time.struct_time=datetime.datetime.timetuple()


datetime.date日期类:

1、当前日期:datetime.date.today()

2、当前日期:datetime.date.fromtimestamp(time.time())

3、日期替换datetime.date.replace(year,month,day)

4、日期加减:delta=datetime.timedelta(weeks,days), newDate=date+delta

5、日期比较: date1<date2, date1>date2

6、格式化输出:datetime.date.strftime('%Y-%m-%d')

7、转换为秒数:time.struct_time=datetime.date.timetuple()


datetime.time时间类:

1、时间构造:datetime.time(hour,minute,second,microsecond)

2、时间替换:datetime.time.replace(hour,minute,second,microsecond)

3、时间比较: time1<time2, time1>time2

4、格式化输出:datetime.time.strftime('%H:%M:%S')


四、hashlib模块使用

import hashlib
hash = hashlib.md5('myname')
print hash.digest_size

print hash.hexdigest()


输出:

16

abb45c192f0818ff22b7ddda8566dac3


五、数据库连接

1、python2使用mysqldb访问数据库;

2、python3使用pymysql访问数据库;

3、ORM框架有Django和SQLAlchemy;

4、WEB框架排名:Flask > Django > FastAPI

5、Flask是比较轻量的框架,FastAPI是高性能的异步编程框架;

发表评论
评论通过审核之后才会显示。