Day6-os模块-datetime的练习-map()/filter()

 
  
import datetime
print(datetime.datetime.today())
print(datetime.datetime.today()+datetime.timedelta(-1))#一天前
print(datetime.date.today())
print(datetime.date.today()+datetime.timedelta(-1))
print(datetime.datetime.today()+datetime.timedelta(hours=10))#10个小时之后
print(datetime.datetime.today()+datetime.timedelta(hours=-1,minutes=-20))

'''
需要注意的地方就是类型是datetime.date,如果有需要可以先转换为str类型再使用
res = datetime.date.today()
# res = str(res)
print(type(res))#<class 'datetime.date'>
print(res)

'''
 
  

 

# 2、写一个程序,创建一些数据。
#     1、创建10个文件夹,文件夹名字自定义
#     2、每个文件下面有10个 日志文件,
#             文件名是从今天开始的前10天
#                 android_2018-07-01.log
#                 android_2018-06-30.log
#                 android_2018-06-29.log
#                 android_2018-06-28.log
#                 android_2018-06-28.log
#                 android_2018-06-28.log
#                 android_2018-06-28.log
#     3、随机选3个文件,往里面写点东西

import os
import datetime
import random
BASE_PATH = r'C:\Users\Administrator\Desktop\pylearn_spz\Day6\logs'
for i in range(5):
    dir_name = 'Android_log%s'%i
    dir_path = os.path.join(BASE_PATH,dir_name)
    os.makedirs(dir_path)
    for n in range(5):
        ctime = str(datetime.date.today()+datetime.timedelta(-n))
        fname = 'android'+ctime+'.log'
        fname_path = os.path.join(dir_path,fname)
        open(fname_path,'w')
    luckfile = random.sample(os.listdir(dir_path),3)
    for f in luckfile:
        abs_file_name = os.path.join(dir_path, f)
        open(abs_file_name, 'w',encoding='utf-8').write('你很幸运')

 

'''描述
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法
map() 函数语法:
map(function, iterable, ...)
参数
function -- 函数,有两个参数
iterable -- 一个或多个序列
返回值
Python 2.x 返回列表。
Python 3.x 返回迭代器。
'''
import os
def make_dir(dirname):
    if not os.path.isdir(dirname):
        os.mkdir(dirname)
        return True
    else:
        print('文件夹已经存在')
res = list(map(make_dir,['try1','try2']))#这里如果不转成List 返回的是迭代器
print(res)
'''描述
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,
然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法
以下是 filter() 方法的语法:
filter(function, iterable)
参数
function -- 判断函数。
iterable -- 可迭代对象。
'''
def use_filter(num):
    if num%2 == 0:
        print('偶数%s'%num)
    else:
        print('奇数%s'%num)
res1 = list(filter(use_filter,[1,4,6,7]))
print(res1)
#Excel 表格的操作
import
xlwt book = xlwt.Workbook()#建一个excel 表 sheet = book.add_sheet('stu_info')#建一个表单 sheet.write(0,0,'呵呵')#写点东西 book.save('stu.xls')#保存
#发邮件
import
yagmail #连邮箱 username = '×××' passwd ='××××'#什么码来着? mail = yagmail.SMTP(user=username,password=passwd,host='smtp.163.com') #如果是qq邮箱就加一个参数 smtp_ssl = True mail.send(to = ['996638257@qq.com','uitestp4p@163.com'], cc='409308045@qq.com',subject='0708水瓶座带附件', contents='嘿嘿嘿', attachments=r'C:\Users\Administrator\Desktop\pylearn_spz\作业视频.py' )
#Random
import
random print(random.random())#只能取小于1的随机小数 for i in range(10): print(random.random()) print(random.randint(1,10))#指定范围取一枚随机整数 头和尾都能取到 s = 'a,b,c' print(random.choice(s))#随机选择一个 print(random.sample(s,3)) print(random.uniform(1,10))#取制定范围的一个随机小数
数据库
# #1.连数据库 Ip账号密码 端口号 数据库
# #2.执行sql
# #3.获取结果
#
# import pymysql
# #建立数据库连接
# conn = pymysql.connect(host='118.24.3.40',user='...',
#                 password='......',
#                 port=3306,db='jxz',charset='utf8',autocommit=True)
#
# cur = conn.cursor()#建立游标
# # cur.execute('show tables;')#执行sql语句execute
# sql = 'insert into nhy (name,pwd) value("Zhangjing","123456");'
# cur.execute(sql)
# # conn.commit()
# cur.execute('select * from nhy where name = "zhangjing";')
# print(cur.fetchall())#获取所有结果
# # print(cur.fetchone())#只获取一条
# # print(cur.fetchmany(2))#指获取几条
# cur.close()#关闭游标
# conn.close()#连接关闭

def my_db(ip,user,passwd,db,sql,port=3306,charset='utf8'):
    conn = pymysql.connect(host=ip,user=user,password=passwd,
                    db=db,port=port,charset=charset,
                    autocommit=True)
    cur = conn.cursor()
    cur.execute(sql)
    sql = sql.strip()
    sql_start = sql[:6].lower()
    if sql_start.starstwith('select') or sql_start.starstwith('show'):
        data = cur.fetchall()
    else:
        data = 'ok'
    cur.close()
    conn.close()
    return data
#Redis
#传统的关系数据库 mysql oracle sql server sqllie db2
#非关系数据库 nosql 没有表结构 mongodb 数据存在磁盘上 redis 数据都是存在内存里
import redis
#连接redis
r = redis.Redis(host='...',
            password='H...',
            db=10)

增删改查
添加修改都用set
r.set('zhangjing','5,4,3')#增加数据

res = r.get('zhangjing')
print(res.decode())#将二进制编码变成了字符串
print(r.get('zhangjing'))#获取数据
#b'5,4,3' 返回的数值里面前面多个b 代表二进制


print(r.get('bucunzai').decode())
 /# #get 一个不存在的Key返回的是None decode 之后会报错

r.delete('oxing')
print(r.keys())#获取到所有的Key
print(r.keys('*info')) #获取以info 结尾的数据
# 
print(r.exists('zj'))#判断这个key是否存在
# 
r.flushdb()#清空当前db中所有的Key
redis命令行里面 切换数据库 select 10
r.hset('Try','20180708','beijing')
r.hdel('session_crm','zhangjing')#删除制定的小Key
r.delete('session_crm')#直接删除大key
r.pexpire('key',600)#设置失效时间 600s
print(r.ttl('session_crm')) #用来看这个key 的失效时间
print(r.type('session_crm'))#查看key 的类型
# 
print(r.hget('session_crm','zhangjing'))#获取制定小key 对应的数据

print(r.hgetall('session_crm'))
Org = r.hgetall('Try')
print(Org)
a  = {}
for k,v in Org.items():
    # print('key',k)
    # print('va',v)
    a[k.decode()] = v.decode()
print(a)

for k,v in Org.items():
    Org[k.decode()] = Org.pop(k).decode()

pop 返回的是对应的value
print(Or

 

转载于:https://www.cnblogs.com/jinzhng/p/9285139.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值