Python基础编程标准库之fileinput与time模块
在前一节我们介绍了标准库的sys模块和os模块,本节将介绍标准库的fileinput模块和time模块。fileinput模块
fileinput模块能够让我们轻松地迭代一系列文本文件中的行。
fileinput模块中一些重要的函数,也是我们在实际开发中需要经常用到的,具体如下表所示:
函数
描述
input([files[, inplace[, backup]]])
帮助迭代多个输入流中的行
filename()
返回当前文件的名称
lineno()
返回(累计的)当前行号
filelineno()
返回在当前文件中的行号
isfirstline()
检查当前行是否是文件中的第一行
isstdin()
检查最后一行是否来自sys.stdin
nextfile()
关闭当前文件并移到下一个文件
close()
关闭序列
fileinput.input(): fileinput模块中最重要的函数,它返回一个可在for循环中进行迭代的对象。
fileinput.filename(): 返回当前文件(即正在处理的行所属的文件)的文件名。
fileinput.lineno(): 返回当前行的编号。
fileinput.filelineno(): 返回当前行在当前文件中的行号。
fileinput.isfirstline(): 在当前行为当前文件中的第一行时返回True,否则返回False。
fileinput.isstdin():在当前文件为sys.stdin时返回True,否则返回False。
fileinput.nextfile():关闭当前文件并跳到下一个文件,且计数时忽略跳过的行。
fileinput.close():关闭整个文件链并结束迭代。
上面关于介绍的fileinput模块中的函数的实例用法如下my_fileinput.py程序所示:
time模块
time模块包含用于获取当前时间、操作时间和日期、从字符串中读取日期、将日期格式化为字符串的函数。日期可表示为实数,也可表示为包含9个整数的元组。例如,元组(2021, 6, 8, 22, 13, 56, 1, 21, 0)表示2021年6月8日22时13分56秒。日期元组中各字段含义如下表所示:
索引
字段
值
0
年
2020、2021等
1
月
范围1~12
2
日
范围1~31
3
时
范围0~23
4
分
范围0~59
5
秒
范围0~61
6
星期
范围0~6,其中0表示星期一
7
儒略日
范围1~366
8
夏令时
0、1、-1
秒的取值范围为0~61,这考虑到了闰一秒和闰两秒的情况。夏令时数字是一个布尔值(True或False),但如果你使用-1,那么mktime[将时间元组转换为时间戳(从新纪元开始后的秒数)的函数]可能得到正确的值。
模块time中有一些重要的函数,也是我们在实际开发中需要经常用到的,具体如下表所示:
函数
描述
asctime([tuple])
将时间元组转换为字符串
localtime([secs])
将秒数转换为表示当地时间的日期元组
mktime(tuple)
将时间元组转换为当地时间
sleep(secs)
休眠(什么都不做)secs秒
strptime(string[, format])
将字符串转换为时间元组
time()
当前时间(从新纪元开始后的秒数,以UTC为准)
time.asctime():将当前的时间转换成字符串形式,如果不想使用当前时间,也可以传递一个时间元组作为参数。如果要使用更复杂的时间格式化,可以使用strftime()函数。
time.localtime():将一个实数转换成时间元组(这里是本地时间),如果要转换成国际标准时间,应该使用time.gmtime()函数。需要注意这里的实数是一个从新纪元开始后的秒数,世界新纪元指的是1970年1月1日0时0分0秒,如果是本地新纪元的话,需要加上本地的时区时间。
time.mktime():将时间元组转换成从新纪元开始后的描述,这与time.local()函数功能相反。
time.sleep():让解释器等待指定的秒数,即程序暂停指定的秒数。
time.strftime():将时间元组按照指定的格式转换成字符串格式。常用的格式符有:%Y表示年,%m表示月,%d表示日,%H表示时,%M表示分,%S表示秒。更多格式符可参考官方标准文档。
time.time():返回当前的国际标准时间,从新纪元开始后的秒数。
上面关于介绍的time模块中的函数的实例用法如下my_time.py程序所示:# my_time.py #!/usr/bin/env python # -*- coding: utf-8 -*- import time # time.asctime() # 不传参数,表示当前时间 print(time.asctime()) # 指定参数 future_time = (2022, 6, 20, 11, 23, 45, 1, 180, 0) print(time.asctime(future_time)) # time.localtime(),返回时间元组 # 不传参数时,表示当前时间 print(time.localtime()) print(time.gmtime()) # 指定参数 print(time.localtime(1)) print(time.gmtime(1)) # time.mktime() future_time = (2022, 6, 20, 11, 23, 45, 1, 180, 0) print(time.mktime(future_time)) print(time.mktime(time.localtime())) # time.sleep(),程序暂停指定的秒数 print("开始暂停…") time.sleep(10) print("暂停结束…") # time.strftime(),返回格式化的时间字符串 print(time.strftime("%H:%M:%S %Y/%m/%d", time.localtime())) # time.time(),返回当前的国际标准时间 print(time.time()) print(time.asctime) 程序执行结果如下所示: Wed Jun 30 00:59:36 2021 Tue Jun 20 11:23:45 2022 time.struct_time(tm_year=2021, tm_mon=6, tm_mday=30, tm_hour=0, tm_min=59, tm_sec=36, tm_wday=2, tm_yday=181, tm_isdst=0) time.struct_time(tm_year=2021, tm_mon=6, tm_mday=29, tm_hour=16, tm_min=59, tm_sec=36, tm_wday=1, tm_yday=180, tm_isdst=0) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0) 1655695425.0 1624985976.0 开始暂停… 暂停结束… 00:59:46 2021/06/30 1624985986.2316344
注意:另外还有两个较新的关于时间的模块:datetime和timeit,大家可执行查阅相关文档。 总结:
本节主要介绍了以下内容:fileinput模块及其常用的变量和函数。time模块及其常用的变量和函数。
下一节我们将会介绍Python中一个重要的模块 — random模块,敬请关注!
如果有需要文中小程序的可以私信我哟!
创作不容易,还请点个赞!喜欢的小伙伴请点关注、收藏!
欢迎大家转发、评论!
#Python# #python# #Python基础# #python打卡# #Python编程从入门到实践#
懒人办公必备好物罗技语音鼠标M380上手体验前言大家好,我是海外记者兼商业摄影师特特,平日里的工作就是打字写稿以及处理照片,因此我对于键盘和鼠标的需求就很大。几个月就能用坏一个普通鼠标,半年就能摩掉键盘的印花。由于高强度的文
充电开麦投屏三管齐下!开黑更畅快!红魔手游拓展坞体验前言最近喜欢玩CODM,体验是真的不错,毕竟是全民FPS手游。我一玩就是一晚上,甚至经常玩到凌晨,但是现在的手机都只有一个充电口,并且取消了3。5mm的接口,蓝牙耳机又不适合玩游戏
口袋里的按摩师每物EM迷你筋膜枪前言最近工作比较忙,也一直处于久坐的状态,身体带脉不通,腰上的脂肪开始堆积,肩颈也是十分酸痛,感觉浑身肌肉都是累累的,继续注入活力。这不,马上入手了两台筋膜枪每物筋膜枪EM,为什么
垃圾桶竟然也能如此智能!拓牛智能感应垃圾桶T1前言智能化时代,给我们的生活带来了琳琅满目的黑科技产品,黑科技产品的使用也能体现一个人的生活品质。我是一个工作狂,也是一个非常愿意接受新生事物,让新生事物改变生活品质的人。家里早早
摄影修图讨喜和准确的色彩是两回事前言大家好,我是海外记者兼商业摄影师Lime。熟悉我的朋友都知道我已经从事了多年的商业产品摄影以及汽车摄影,并且在数码后期中也有着5年以上的经验。一些品牌的官网或者是广告牌上都能看
鹏博士两项云服务亮相成都新经济双千发布会12月29日,场景汇释放数据价值赋能智慧治理2020成都新经济双千发布会城市智慧治理专场活动在成都举行。据悉,此次活动由成都市政务服务管理和网络理政办公室成都市新经济发展委员会成都
令人心动的公司千万不要错过最近令人心动的Offer热播,引发了网友们的热切讨论。从三好学生到职场新人,每个求职者面对的都是一场全新的旅程。求职是企业与求职者的双向选择,优质的简历会获得面试官的青睐,软硬件设
奥运回顾解锁东京奥运会的那些黑科技2021年的夏天,注定值得被铭记。16个争分夺秒的日日夜夜,我们见证了来自世界各地运动员们追求奥运梦想的决心,也见证了世界体育竞技的荣耀与辉煌。目前东京奥运会已经落下帷幕。中国队以
微信或支持刷手支付?细数那些瞬间提高效率的办公黑科技近日,微信支付正在内测一项名为刷掌支付的全新支付功能,被誉为新一代支付体验。用户需要在刷脸设备上注册手掌并刷脸关联到个人微信账号上,线下消费时,将手掌对着微信支付设备的扫描区,设备
2021中国家电技术大会力求建设全球家电科技创新引领者当下,中国家电工业处于优化产业结构转换增长动能的关键时期,力争实现构建智能家电生态推动产业链绿色发展,加快数字化转型的发展目标,创新已成为中国家电工业十四五期间的首要任务。如此形势
快宝网络受邀亮相第四届数字中国建设峰会,科技赋能快递末端4月25日,由国家互联网信息办公室国家发展和改革委员会工业和信息化部国务院国有资产监督管理委员会福建省人民政府联合主办的第四届数字中国建设峰会在福州海峡国际会展中心隆重举行。快宝作