python学习之路2迭代器和os模块日期

 迭代器和生成器

可迭代对象:可以直接作用于for循环的对象统称为可迭代对象(iterable)

用isinstance()来判断是否为可迭代对象

判断是否为可迭代对象    isinstance({1,2},Iterable)   除了数字,字符串,布尔值,其他都可以for循环,字符串也可以

from collections import Iterable     不是全局包,必须指明出处

迭代器:

  1. 迭代器必须是一个可迭代的对象
  2. 有两个基本方法 iter(), next()
  3. 我们也可以使用isinstance()来判断是否为迭代器
  4. 迭代器只能不断往后走,走完以后再走会报stopIteration错误
# 迭代器 
collections import Iterator  # 导入迭代器的数据类型
myStrIterator = iter("abcd")
print(myStrIterator)  # <str_iterator object at 0x000000E1CFB9CB00>
print(isinstance(myStrIterator,Iterator))  # True 是一个迭代器
print(isinstance("abcd",Iterator))  # False  "abcd"是一个可迭代对象,不为迭代器
# 使用next方法 一个一个值的取
# print(next(myStrIterator))  # a
print(next(myStrIterator))  # b
print(next(myStrIterator))  # c
# print(next(myStrIterator))  # d
# print(next(myStrIterator))  # error StopIteration
# 使用for循环遍历迭代器(会继续从上次执行的位置,继续向下执行)
for i in myStrIterator:
    print(i)

生成器:

  1. 函数使用了yield关键字 成为生成器
  2. 使用了列表生成器 (i for i in range(1000)) 叫做生成器
  3. 生成器也可以使用迭代器的next()方法 一个一个取值

生成器的好处,节约电脑资源

os模块

概念:包含了普遍操作系统的功能

一. 函数

函数名函数说明
os.name获取当前操作系统的类型,nt->windows, posix->linux mac
os.environ获取操作系统中的所有环境变量
os.getcwd()获取当前的工作路径
os.listdir(path)以列表的形式返回目录的文件
os.mkdir(path)创建新的目录,如果文件存在报错
os.rmdir(path)删除空目录,如果找不到目录保错
os.rename(old,name)重命名,并修改文件路径
os.remove(filename)删除文件
os.system(cmd)运行shell命令
os.path.join(dir,filename)拼凑完整路径
os.path.isdir()判断是否为目录
os.path.isfile()判断是否为文件
os.path.splitext(path)获取文件的扩展名(将目录和文件名后缀拆分,例如: .txt),返回元组形式
os.path.exists(path)判断文件或路径是否存在
os.path.getSize(path)获取文件的字节数
os.path.dirname(path)获取目录名称(目录名)
os.path.basename(path)获取文件名
os.path.abspath(path)获取当前文件的绝对路径
os.path.split(path)拆分路径(将目录和文件名拆分),返回元组的形式

时间

两个模块

time datetime

概念: 时间戳是指格林威治1970年1月1日00时00分00秒到现在的整数或者浮点数的秒数

time模块常用的函数

函数名函数说明
time.time()获取当前的秒数(时间戳)
time.localtime([时间戳]),其中时间戳为可选参数接收时间戳,返回时间的元组0-6代表周一到周日
time.asctime()返回格式化后的英文文本时间
time.strftime(格式化时间的占位符, [时间元组]),其中时间元组可选格式化时间,默认本地
time.mktime(时间元组)将时间元组转为时间戳并返回
time.sleep(秒)推迟调用线程的时间
time.strptime("2018-1-5 14:28:00","%Y-%m-%d %H:%M:%S")将指定的时间格式转换为时间元组
time.clock()用浮点数计算当前cpu运行某个程序所花费的时间比time.time()更加精准

总结: 给出固定的时间 转换成时间戳的方式:

python中时间日期格式化符号:(占位符)

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %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 当前时区的名称
  • %% %号本身

datetime模块

对time模块的封装 更加直观

datetime的常用函数

导入模块

from datetime import datetime # 从库中导入模块

import datetime  # 导入库

函数名函数说明
datetime.now()返回当前的时间
datetime.datetime(年,月,日,时,分,秒,微秒数)获取指定的时间
时间.timestamp()通过时间返回时间戳
datatime.fromtimestamp(时间戳)把时间戳转换为时间
datetime.now().strftime(格式化的符号)将 now返回的时间格式化为你想要的时间

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值