模块

sys: 它是和python运行环境相关的模块

常用sys模块功能
查看模块查找目录     :sys.path
查看当前导入的模块  :sys.modules
查看当前操作系统     :sys.platform 
查看所有内嵌的模块  :sys.builtin_module_names
退出当前程序       :sys.exit([n])    ----    当n 为非0时,引发一个SystemExit异常
有时参数为字符串时,字符串会成为退出的提示信息。
                                   这也和python版本相关,有时并不会引发一个系统导常,而是会返回一个类似
                                   bash的状态码(需要使用linux执行)
程序接受参数       : sys.argv
     sys.argv      :表示当前程序所有参数
     sys.argv[0] :表示当前程序名
     sys.argv[1] :表示当前程序第一个参数
     sys.argv[2] :表示当前程序第二个参数

例: 用户使用命令行的方式进行传递参数,参数可以是任意多个,将所有数字参数求和
# ./test.py 1 2 3 ab cd 100 ==> 106

参考:
    import  sys

    def listadd(L):
        ret = 0
        for i in L:
            try:
                i = int(i.strip())
            except:
                pass
            else:
                ret += i
        return ret

    if __name__ == '__main__':
        args = sys.argv[1:]
        ret = listadd(args)
        print(ret)

os模块和操作系统相关

方 法 示 例 说 明
os.name                 os.name                             返回当前系统类型
os.getcwd()             os.getcwd()                         返回当前工作路径
os.listdir()            os.listdir()                        返回当前目录中所有文件及目录
os.remove()             os.remove('1.txt')                  删除 1.txt 文件
os.rmdir()              os.rmdir('tmp')                     删除tmp目录,tmp必须为空目录
os.mkdir()              os.mkdir('tmp')                     创建tmp目录
os.chdir()              os.chdir('/root')                   切换目录
os.makedirs()           os.makedirs('a/b/c')                创建多级目录 
os.path.isfile()        os.path.isfile('6.txt')             判断6.txt 是否为文件
os.path.isdir()         os.path.isdir('tmp')                判断tmp是否为目录 
os.path.exists()        os.path.exists('b')                 判断 文件或目录是否存在
os.path.abspath()       os.path.abspath('6.txt')            返回 6.txt 文件的绝对目录
os.path.basename()      os.path.basename('/root/a.txt')     获取文件名
os.path.dirname()       os.path.dirname('/root/a.txt')      获取目录名
os.system()             os.system('ls -l')                  执行系统命令,执行ls -l命令
os.popen()              ret = os.popen('ls -l')             执行系统命令,将结果放入到ret中,ret是一个文件对象。

例: 使用os模块执行shell命令,得到/boot目录中所有文件的大小总和
import os
def get_dirsize(dir):
size = 0
file = os.popen(‘ls -l {}’.format(dir))
file.readline()
for line in file:
tmp = line.split()[4]
size += int(tmp)
return size

if name == ‘main’:
dir = ‘/boot’
ret = get_dirsize(dir)
print(ret,“Bytes”)

shutil 常用函数

os模块在处理文件和目录时有不足之处,比如删除有文件的目录等,shutil是一个强有力的补充。
方 法 示 例 说 明
shutil.copy()           shutil.copy('test.py','test.bak')           拷贝文件
shutil.copytree()       shutil.copytree('tmp','tmp.d')              拷贝目录,目录可以非空
shutil.rmtree()         shutil.rmtree('tmp')                        递归删除文件夹
shutil.move()           shutil.move('6.txt','../6.bak')             移动文件,也可以重命名

math 常用函数

方 法 示 例 说 明
round()         round(2.1251,2) -->  2.13       round(123456,-1) --> 123460 
                精确十位 四舍五入,保留2位小数,是python自带函数,不是math中的(python3 取消)
math.ceil()         math.ceil(2.3)   -->  3 向上取整
math.floor()        math.floor(2.8) -->  2 向下取整
math.sqrt()         math.sqrt(4)     -->  2.0 开方
math.pow()          math.pow(2,3)  -->  8.0 乘方
math.log()          math.log(100,10)  -->  2.0 求以10为底100的对数,默认底为 e
math.e              math.e -->  2.7182818284 自然底数
math.pi             math.pi  -->  3.141592653 圆周率
math.degrees()      math.degrees(math.pi) --> 180.0 转弧度转换为角度
math.radians(180)   math.radians(180)  -->  3.1415926 角度转换为弧度
sin  cos  tan   asin  acos  atan 三角函数与反三角函数(参数必须为弧度) 
factorial 求阶乘: 5! = 1*2*3*4*5 

一个圆的角度为360度,一个圆的弧度为2 pi
一般使用程序计算三角函数时要使用弧度
sin   正弦    一个直角三角形中对边比斜边(根据弧度求比值)
cos   余弦    一个直角三角形中邻边比斜边(根据弧度求比值)
tan   正切    一个直角三角形中对边比邻边(根据弧度求比值)
asin  反正弦  根据比值求弧度

时间模块 time

有三种时间形式 时间戳  字符串  时间元组
常用方法:
    time()              time.time()     获取时间戳
    localtime()         T = time.localtime()
                        time.localtime(1514166766.0) 当前时间的时间元组根据时间戳产生时间元组
    mktime()            time.mktime(T)   根据时间元组生成时间戳
    sleep()             time.sleep(n) 程序暂停 n 秒
    strptime()          T = time.strptime('2017-11-12','%Y-%m-%d') 将日期变成时间元组 T
    strftime()          time.strftime('%Y-%m-%d',T) 将时间元组变成字符串

例1: 得到当前时间的时间戳及时间元组,得到格林尼治时间
time.time()
time.localtime()
time.gmttime()

例2: 将时间戳1555526007 变成时间元组
import time
tmp = 1555526007
ret = time.localtime(tmp)
print(ret)

例3: 将例2中的时间元组变成时间戳
tmp = 例 2中的元组
ret = time.mktime(tmp)
print(ret)

例4: 将字符串 ‘2018-10-11 12:13:14’ 变成时间戳(无法直接变,可以先变成时间元组)
import time
tmp = ‘2018+10-11 12:13:14’
ret = time.strptime(tmp,’%Y+%m-%d %H:%M:%S’)
ret = time.mktime(ret)
print(ret)

例5: 将时间戳1555526007 变成字符串(无法直接变,可以先变成时间元组)
import time
tmp = 1555526007
tmp = time.localtime(tmp)
ret = time.strftime(’%Y/%m/%d %H:%M’,tmp)
print(ret)
datetime 模块(django等框架使用)

因为datetime中有很多子模块,我们一般使用其中的两个 from datetime import datetime,timedelta)
datetime对象可以比较大小
可以直接构建datetime对象  datetime(2009,10,11,15,16,20)

例1: 得到当前时间的datetime对象及时间戳
from datetime import datetime

now = datetime.now()
print(now)
ret = now.timestamp()
print(ret)

例2: 将字符串 ‘2018-10-11 12:13:14’ 变成时间戳(无法直接变,可以先变成datetime对象)
from datetime import datetime

tmp = '2018-10-11 12:13:14'
ret = datetime.strptime(tmp,'%Y-%m-%d %H:%M:%S')
ret = ret.timestamp()
print(ret)

例3: 将时间戳 123456789 变成一个字符串
from datetime import datetime

tmp = 123456789
ret = datetime.fromtimestamp(tmp)
ret = ret.strftime('%Y/%m/%d %H:%M:%S')
print(ret)

例: 在原来时间的基础上增加各减少五天
注意: 也可以直接使用时间戳进行运算
from datetime import datetime,timedelta

now = datetime.now()
delta = timedelta(days=5)

print(now-delta)
print(now)
print(now + delta)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章