昆明网站seo多少钱,2024年最新一轮阳性症状,高端网站定制费用是多少,做360手机网站快time与datetime模块 先认识几个python中关于时间的名词#xff1a; 时间戳(timestamp)#xff1a;通常来说#xff0c;时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”#xff0c;返回的是float类型。1970年之前的日期无法以此表…time与datetime模块 先认识几个python中关于时间的名词 时间戳(timestamp)通常来说时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”返回的是float类型。1970年之前的日期无法以此表示太遥远的日期也不行UNIX和Windows只支持到2038年时间戳最适合做日期运算。 格式化的时间字符串(Format String)按照指定格式输出日期字符串 结构化的时间(struct_time)struct_time元组共有9个元素共九个元素:(年月日时分秒一年中第几周一年中第几天夏令时) import time#我们先以当前时间为准,让大家快速认识三种形式的时间print(time.time()) # 时间戳:1487130156.419527
print(time.strftime(%Y-%m-%d %X)) #格式化的时间字符串:2017-02-15 11:40:53print(time.localtime()) #本地时区的struct_time
print(time.gmtime()) #UTC时区的struct_time 三种形式的时间实例 python中时间日期格式化符号------------------------------------%y 两位数的年份表示00-99%Y 四位数的年份表示000-9999%m 月份01-12%d 月内中的一天0-31%H 24小时制小时数0-23%I 12小时制小时数01-12%M 分钟数0059%S 秒00-59%a 本地简化星期名称%A 本地完整星期名称%b 本地简化的月份名称%B 本地完整的月份名称%c 本地相应的日期表示和时间表示%j 年内的一天001-366%p 本地A.M.或P.M.的等价符%U 一年中的星期数00-53星期天为星期的开始%w 星期0-6星期天为星期的开始%W 一年中的星期数00-53星期一为星期的开始%x 本地相应的日期表示%X 本地相应的时间表示%Z 当前时区的名称 # 乱码%% %号本身常用的时间日期格式化符号 由于计算机只能读懂时间戳所以在一些特定的场景下我们会把上面三种时间的表示方式进行转换 # localtime([secs])
# 将一个时间戳转换为当前时区的struct_time。secs参数未提供则以当前时间为准。time.localtime()time.localtime(1539582935.9421027)gmtime([secs]) 和localtime()方法类似gmtime()方法是将一个时间戳转换为UTC时区0时区的struct_time。# mktime(t) : 将一个struct_time转化为时间戳。print(time.mktime(time.localtime()))# strftime(format[, t]) : 把一个代表时间的元组或者struct_time如由time.localtime()和# time.gmtime()返回转化为格式化的时间字符串。如果t未指定将传入time.localtime()。如果元组中任何一个# 元素越界ValueError的错误将会被抛出。print(time.strftime(%Y-%m-%d %X, time.localtime()))#2018-10-15 13:57:56# time.strptime(string[, format])# 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。print(time.strptime(2011-05-05 16:37:06, %Y-%m-%d %X))#time.struct_time(tm_year2011, tm_mon5, tm_mday5, tm_hour16, tm_min37, tm_sec6,# tm_wday3, tm_yday125, tm_isdst-1)#在这个函数中format默认为%a %b %d %H:%M:%S %Y。 利用结构化时间转换 # asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式Sun Jun 20 23:21:05 1993。
# 如果没有参数将会将time.localtime()作为参数传入。
print(time.asctime())#Sun Sep 11 00:43:43 2016# ctime([secs]) : 把一个时间戳按秒计算的浮点数转化为time.asctime()的形式。如果参数未给或者为
# None的时候将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
print(time.ctime()) # Sun Sep 11 00:46:38 2016
print(time.ctime(time.time())) # Sun Sep 11 00:46:38 2016 时间戳与格式化时间转换为时间字符串 时间加减
import datetimeprint(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925
print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2016-08-19
print(datetime.datetime.now() )
print(datetime.datetime.now() datetime.timedelta(3)) #当前时间3天
print(datetime.datetime.now() datetime.timedelta(-3)) #当前时间-3天
print(datetime.datetime.now() datetime.timedelta(hours3)) #当前时间3小时
print(datetime.datetime.now() datetime.timedelta(minutes30)) #当前时间30分时间替换
c_time datetime.datetime.now()
print(c_time.replace(minute3,hour2)) 时间运算 random模块 import randomprint(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([1,23,[4,5]])) #1或者23或者[4,5]print(random.sample([1,23,[4,5]],2)) #列表元素任意2个组合print(random.uniform(1,3)) #大于1小于3的小数如1.927109612082716
item[1,3,5,7,9]
random.shuffle(item) #打乱item的顺序,相当于洗牌
print(item) random常见用法 os模块 os模块是与计算机操作系统交互的一个接口 os.getcwd() 获取当前工作目录即当前python脚本工作的目录路径
os.chdir(dirname) 改变当前脚本工作目录相当于shell下cd
os.curdir 返回当前目录: (.)
os.pardir 获取当前目录的父目录字符串名(..)
os.makedirs(dirname1/dirname2) 可生成多层递归目录
os.removedirs(dirname1) 若目录为空则删除并递归到上一级目录如若也为空则删除依此类推
os.mkdir(dirname) 生成单级目录相当于shell中mkdir dirname
os.rmdir(dirname) 删除单级空目录若目录不为空则无法删除报错相当于shell中rmdir dirname
os.listdir(dirname) 列出指定目录下的所有文件和子目录包括隐藏文件并以列表方式打印
os.remove() 删除一个文件
os.rename(oldname,newname) 重命名文件/目录
os.stat(path/filename) 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符win下为\\,Linux下为/
os.linesep 输出当前平台使用的行终止符win下为\t\n,Linux下为\n
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win-nt; Linux-posix
os.system(bash command) 运行shell命令直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以或\结尾那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在返回True如果path不存在返回False
os.path.isabs(path) 如果path是绝对路径返回True
os.path.isfile(path) 如果path是一个存在的文件返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小 os操作大全 os.path.normpath在Linux和Mac平台上该函数会原样返回path在windows平台上会将路径中所有字符转换为小写并将所有斜杠转换为饭斜杠。os.path.normcase(c:/windows\\system32\\)
c:\\windows\\system32\\ 规范化路径如..和/os.path.normpath(c://windows\\System32\\../Temp/)
c:\\windows\\Temp a/Users/jieli/test1/\\\a1/\\\\aa.py/../..print(os.path.normpath(a))
/Users/jieli/test1 os.path.normcase()与os.path.normpath() os路径处理
#方式一推荐使用
import os
#具体应用
import os,sys
possible_topdir os.path.normpath(os.path.join(os.path.abspath(__file__),os.pardir, #上一级os.pardir,os.pardir
))
sys.path.insert(0,possible_topdir)#方式二不推荐使用
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 路径处理 sys模块 sys.argv #命令行参数List第一个元素是程序本身路径
sys.modules.keys() #返回所有已经导入的模块列表
sys.exc_info() #获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
sys.exit(n) #程序正常退出时exit(0)
sys.hexversion #获取Python解释程序的版本值16进制格式如0x020403F0
sys.version #获取Python解释程序的版本信息
sys.maxint #最大的Int值
sys.maxunicode #最大的Unicode值
sys.modules #返回系统导入的模块字段key是模块名value是模块
sys.path #返回模块的搜索路径初始化时使用PYTHONPATH环境变量的值
sys.platform #返回操作系统平台名称
sys.stdout #标准输出
sys.stdin #标准输入
sys.stderr #错误输出
sys.exc_clear() #用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix #返回平台独立的python文件安装的位置
sys.byteorder #本地字节规则的指示器big-endian平台的值是big,little-endian平台的值是little
sys.copyright #记录python版权相关的东西
sys.api_version #解释器的C的API版本
sys.version_info #获取Python解释器的版本信息
sys.getwindowsversion #获取Windows的版本
sys.getdefaultencoding #返回当前你所用的默认的字符编码格式
sys.getfilesystemencoding #返回将Unicode文件名转换成系统文件名的编码的名字
sys.setdefaultencoding(name) #用来设置当前默认的字符编码
sys.builtin_module_names #Python解释器导入的模块列表
sys.executable #Python解释程序路径
sys.stdin.readline #从标准输入读一行sys.stdout.write(a) 屏幕输出a View Code 处理模块我们在使用模块的某一个功能前需要用import,__import__命令导入。那我们在执行import module_name的时候python内部发生了什么呢简单的说就是搜索module_name。根据sys.path的路径来搜索module.name import sys
printsys.path[, /usr/lib/python2.7, /usr/lib/python2.7/plat-x86_64-linux-gnu, /usr/lib/python2.7/lib-tk, /usr/lib/python2.7/lib-old, /usr/lib/python2.7/lib-dynload, /usr/local/lib/python2.7/dist-packages, /usr/lib/python2.7/dist-packages, /usr/lib/python2.7/dist-packages/PILcompat, /usr/lib/python2.7/dist-packages/gtk-2.0, /usr/lib/pymodules/python2.7, /usr/lib/python2.7/dist-packages/ubuntu-sso-client] View Code 我们以后写好的模块就可以放到上面的某一个目录下便可以正确搜索到了。当然也可以添加自己的模块路径。sys.path.append(“my module path”)。 sys.path.append(my module path)sys.path
[, /usr/lib/python2.7, /usr/lib/python2.7/plat-x86_64-linux-gnu, /usr/lib/python2.7/lib-tk, /usr/lib/python2.7/lib-old, /usr/lib/python2.7/lib-dynload, /usr/local/lib/python2.7/dist-packages, /usr/lib/python2.7/dist-packages, /usr/lib/python2.7/dist-packages/PILcompat, /usr/lib/python2.7/dist-packages/gtk-2.0, /usr/lib/pymodules/python2.7, /usr/lib/python2.7/dist-packages/ubuntu-sso-client, my module path] View Code path列表是一个由目录名构成的列表, Python 从中查找扩展模块( Python 源模块, 编译模块,或者二进制扩展).启动 Python 时,这个列表根据内建规则, PYTHONPATH 环境变量的内容, 以及注册表( Windows 系统)等进行初始化.由于它只是一个普通的列表, 你可以在程序中对它进行操作。使用sys模块查找已导入的模块sys.modulesmodules 字典包含所有加载的模块。 import 语句在从磁盘导入内容之前会先检查这个字典。Python 在处理你的脚本之前就已经导入了很多模块. import systype(sys.modules)
type dictsys.modules.keys()
[copy_reg, sre_compile, _sre, encodings, site, __builtin__, sysconfig, __main__, encodings.encodings,abc, posixpath, _weakrefset, errno, encodings.codecs, sre_constants, re, _abcoll, types, _codecs, encodings.__builtin__, _warnings, genericpath, stat, zipimport, _sysconfigdata, warnings, UserDict, encodings.utf_8, sys, codecs, readline, _sysconfigdata_nd, os.path, sitecustomize, signal, traceback,linecache, posix, encodings.aliases, exceptions, sre_parse, os, _weakref] len(sys.modules.keys())
43 View Code 打印进度条 #指定宽度
print([%-15s]%#)
print([%-15s]%##)#打印%
print(%s%%%(100)) #第二个%号代表取消第一个%的特殊意义#可传参来控制宽度
print([%%-%ds] %50) #[%-50s]
print(([%%-%ds] %50) %#)
print(([%%-%ds] %50) %##)
print(([%%-%ds] %50) %###)
字符串输出 %s,%10s--右对齐占位符10位%-10-----左对齐占位符10位
import sys
import timedef progress(percent,width50):if percent 1:percent1show_str([%%-%ds] %width) %(int(width*percent)*#)print(\r%s %d%% %(show_str,int(100*percent)),filesys.stdout,flushTrue,end)#\r是回车的意思#应用
data_size102500
recv_size0
while recv_size data_size:time.sleep(0.1) #模拟数据的传输延迟recv_size1024 #每次收1024
percentrecv_size/data_size #接收的比例progress(percent,width70) #进度条的宽度70 View Code print官方文档分析 print(…)
print(value, …, sep’ ‘, end’\n’, filesys.stdout, flushFalse)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.参数解析
value需要输出的值可以是多个用”,”分隔。
sep多个输出值之间的间隔默认为一个空格。
end输出语句结束以后附加的字符串默认是换行’\n’。
file输出的目标对象可以是文件也可以是数据流默认是“sys.stdout”。
flushflush值为True或者False默认为Flase,表示是否立刻将输出语句输出到目标对象。 print参数分析 默认print(value, …, sep’ ‘, end’\n’, filesys.stdout, flushFalse) print(hello world)
hello world12当value有多个 print(hello,world)
hello world12当sep为”,” print(hello,world,sep,)
hello,world12当end为“”print(hello,world,end)
print(hello,world)
hello worldhello world123当file指向test.txttest open(test.txt, w)
print(hello,world,sep\n, filetest)
123此时当前目录下会新建一个test.txt文件里面内容为hello
world12flushFalse
该参数只有两个选项True or False。
当flushFalse时,输出值会存在缓存然后在文件被关闭时写入。
当flushTrue时,输出值强制写入文件。 实际举例 functools 该模块为高阶函数提供支持——作用于或返回函数的函数被称为高阶函数。在该模块看来一切可调用的对象均可视为本模块中所说的“函数”。 python3.6中的functools import functools
for i in dir(functools):print(i)运行结果MappingProxyType
RLock
WRAPPER_ASSIGNMENTS
WRAPPER_UPDATES
WeakKeyDictionary
_CacheInfo
_HashedSeq
__all__
__builtins__
__cached__
__doc__
__file__
__loader__
__name__
__package__
__spec__
_c3_merge
_c3_mro
_compose_mro
_convert
_find_impl
_ge_from_gt
_ge_from_le
_ge_from_lt
_gt_from_ge
_gt_from_le
_gt_from_lt
_le_from_ge
_le_from_gt
_le_from_lt
_lru_cache_wrapper
_lt_from_ge
_lt_from_gt
_lt_from_le
_make_key
cmp_to_key
get_cache_token
lru_cache
namedtuple
partial
partialmethod
recursive_repr
reduce
singledispatch
total_ordering
update_wrapper
wrapspartial函数(偏函数) 把一个函数的某些参数设置默认值返回一个新的函数调用这个新函数会更简单 import functoolsdef show_parameter(*args, **kw):print(args)print(kw)p1 functools.partial(show_parameter(), 1, 2, 3)p1()(1, 2, 3)
{}p1(4, 5, 6)(1, 2, 3, 4, 5, 6)
{}p1(apython, bitcast)(1, 2, 3)
{a: python, b: itcast}
p2 functools.partial(show_parameter, a3, blinux)p2()()
{a: 3, b: linux}p2(1, 2)(1, 2)
{a: 3, b: linux}p2(apython, bitcast)()
{a: python, b: itcast}wraps函数 使用装饰器时有一些细节需要被注意。例如被装饰后的函数其实已经是另外一个函数了函数名等函数属性会发生改变。 添加后由于函数名和函数的doc发生了改变对测试结果有一些影响例如 def outter(func):outter functiondef wrapper():wrapper functionprint(outter something)return func()return wrapperoutter
def test():test functionprint(I am test)test()print(test.__doc__) #这里面的__doc__改变了执行结果outter something
I am test
wrapper function所以Python的functools包中提供了一个叫wraps的装饰器来消除这样的副作用 import functoolsdef outter(func):outter functionfunctools.wraps(func)def wrapper():wrapper functionprint(outter something)return func()return wrapperoutter
def test():test functionprint(I am test)test()
print(test.__doc__)执行结果outter something
I am test
test function转载于:https://www.cnblogs.com/596014054-yangdongsheng/p/9770662.html