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返回的时间格式化为你想要的时间

猜你喜欢

转载自blog.csdn.net/zuggs_/article/details/81558047