一些常用的模块

Posted bk134

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些常用的模块相关的知识,希望对你有一定的参考价值。

一 time与datetime模块

  1.1 time模块

import time

    优先掌握

#时间戳timestamp:从1970年到现在经过的秒数.作用:用于时间间隔的计算
print(time.time())

#按照某种格式显示的时间Format String:2020-03-30 11:11:11 AM.作用:用于展示时间
print(time.strftime(%Y-%m-%d %H:%M:%S %p))

#结构化的时间,作用:用于单独获取时间的某一部分。结构化的时间(struct_time)元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
res = print(time.localtime())
print(res)
print(res.tm_year)

#睡眠(暂停)
print(time.sleep(3))

    需要掌握

#时间格式的转换

# struct_time->时间戳
s_time = time.localtime()
print(time.mktime(s_time))# mktime(t) : 将一个struct_time转化为时间戳。

# 时间戳->struct_time
tp_time=time.time()
print(time.localtime(tp_time))

    部分掌握

#strftime转化为格式化的时间字符串
s_time=time.localtime()
print(time.strftime(%Y-%m-%d %H:%M:%S,s_time))

#把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
print(time.strptime(2020-03-30 16:16:38,%Y-%m-%d %H:%M:%S))

# !!!真正需要掌握的只有一条:format string<------>timestamp
# format string--->struct_time--->timestamp
struct_time=time.strptime(1988-03-03 11:11:11,%Y-%m-%d %H:%M:%S)
timestamp=time.mktime(struct_time)
print(timestamp)

# format string<---struct_time<---timestamp
res=time.strftime(%Y-%m-%d %X,time.localtime())
print(res)

    补充:世界标准时间和本地时间

print(time.localtime())
print(time.gmtime()) # 世界标准时间,了解

    了解

print(time.asctime())
#把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
#None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

  1.2 datetime

技术图片
import datetime
print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式
print(datetime.datetime.now()) # 当前时间
print(datetime.datetime.now() + datetime.timedelta(days=3)) #当前时间加3天
print(datetime.datetime.now() + datetime.timedelta(weeks=1))#当前时间加1星期
print(datetime.datetime.utcnow()) #时间标准时间

c_time  = datetime.datetime.now()
print(c_time.replace(minute=3,hour=2)) #时间替换
datetime

 

二 random模块

import random

print(random.random())#(0,1)----float    大于0且小于1之间的小数
print(random.randint(1,3))# [1,3]    大于等于1且小于等于3之间的整数
print(random.randrange(1,3))# [1,3)    大于等于1且小于3之间的整数
print(random.choice([111,aaa,[1,2]])) #在元素内随机选择一个
print(random.sample([111,zz,[1,2]]),2) # 列表元素任意2个组合
print(random.uniform(1,3)) # 大于1小于3的小数,如1.927109612082716

item = [1, 3, 5, 7, 9]
random.shuffle(item)  # 打乱item的顺序,相当于"洗牌"
print(item)

 

  验证码的案例

import random
def make_code(size=4):
    res = ‘‘
    for i in range(size):
        s1 = chr(random.randint(65,90))
        s2 = str(random.randint(0,9))
        res+=random.choice([s1,s2])
    return res
print(make_code(6))

 

三 os模块

技术图片
print(os.listdir(.)# 获取某一个文件夹下所有的子文件以及子文件夹的名字
print(os.path.getsize(.))#返回path的大小
os.remove()  #删除一个文件
os.rename("oldname","newname")  #重命名文件/目录
os.system(command)  #将字符串转换成命令在终端运行

print(os.environ)  #获取系统环境变量
os.environ[aaaaaaaaaa]=111# 规定:key与value必须都为字符串
print(os.environ)

print(os.path.dirname(r/a/b/c/d.txt))#返回path的目录
print(os.path.basename(r/a/b/c/d.txt))#返回path最后的文件名
print(os.path.isfile(path))#如果path是一个存在的文件,返回True。否则返回False 可以用来判断是否为文件
print(os.path.isdir(path))#如果path是一个存在的目录,则返回True。否则返回False
print(os.path.join(a,/,b,c,d))#将多个路径组合后返回,第一个绝对路径(/)之前的参数将被忽略
掌握
技术图片
print(os.getcwd())#获取当前工作目录,即当前python脚本工作的目录路径
print(os.chdir("dirname")) #改变当前脚本工作目录;相当于shell下cd
os.makedirs(dirname1/dirname2)#可生成多层递归目录
os.removedirs(dirname1)#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(dirname)    #生成单级目录;相当于shell中mkdir dirname
os.rmdir(dirname)    #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.stat(path/filename)  #获取文件/目录信息
os.sep    #输出操作系统特定的路径分隔符,win下为"",Linux下为"/"
os.linesep    #输出当前平台使用的行终止符,win下为"	
",Linux下为"
"
os.pathsep    #输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name    #输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘
os.path.abspath(path)  #返回path规范化的绝对路径
os.path.split(path)  #将path分割成目录和文件名二元组返回
os.path.split(path)#的第二个元素
os.path.exists(path)  #如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)  #如果path是绝对路径,返回True
os.path.getatime(path)  #返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  #返回path所指向的文件或者目录的最后修改时间
了解

   os处理路径的几种方式

# 方式一:推荐用这种
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
print(BASE_DIR)

#方式二
BASE_DIR=os.path.normpath(os.path.join(
    __file__,
    ..,
    ..
))
print(BASE_DIR)

#方式三# 在python3.5之后,推出了一个新的模块pathlib
from pathlib import Path
res = Path(__file__).parent.parent
print(res)
#路径的拼接
res=Path(/a/b/c) / d/e.txt
print(res)
print(res.resolve())

 

四 sys模块

sys.argv           #命令行参数List,第一个元素是程序本身路径
sys.exit(n)        #退出程序,正常退出时exit(0)
sys.version        #获取Python解释程序的版本信息
sys.maxint         #最大的Int值
sys.path           #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       #返回操作系统平台名称

  打印进度条案例

import sys
import time
def progress(percent,width=50):
    if percent>1:
        percent=1
    show_str = ([%%-%ds]%width)%(int(percent*width)**)
    print(
%s %s%%%(show_str,int(percent*100)),end=‘‘)

data_size=10250
recv_size=0
while recv_size < data_size:
    time.sleep(0.1) #模拟数据的传输延迟
    recv_size+=1024 #每次收1024

    percent=recv_size/data_size #接收的比例
    progress(percent,width=70) #进度条的宽度70

 

以上是关于一些常用的模块的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发-OC学习-常用功能代码片段整理

swift常用代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?

常用Javascript代码片段集锦

js常用代码片段

Python 常用模块学习