zoukankan      html  css  js  c++  java
  • 第六周作业

    import os,datetime
    dirs = ['tomcat','nginx','apache','python','app','android','ios']
    os.chdir(r'E:syzly-codeday6logs')
    base_path = r'E:syzly-codeday6logs'
    for d in dirs:
    p = os.path.join(base_path,d)
    os.mkdir(p)
    os.chdir(p)
    for i in range(1,10):
    t = datetime.date.today()+datetime.timedelta(-i)
    name = '%s_%s.log'%(d,t)
    open(name,'w')


    def my_db(host,user,passwd,db,sql,port=3306,charset='utf8'):
    import pymysql
    coon = pymysql.connect(user=user,
    host=host,
    port=port,
    passwd=passwd,
    db=db,
    charset=charset
    )
    cur = coon.cursor() #建立游标
    cur.execute(sql)#执行sql
    if sql.strip()[:6].upper()=='SELECT':
    res = cur.fetchall()
    else:
    coon.commit()
    res = 'ok'
    cur.close()
    coon.close()
    return res

    # 把双数日期的日志,里面给随便写点东西。
    # 1、获取到log目录下面的所有文件 os.walk()
    # 2、根据文件名来判断,是否是双数日期 ,分割字符串,取到日期
    # 3、12%2==0
    # 4、打开这个文件 open()
    import os
    for abs_path,dir,file in os.walk(r'E:syzly-codeday6logs'):
    for f in file:
    day = f.split('.')[0].split('-')[-1]
    if int(day)%2==0:
    file_name = os.path.join(abs_path,f)#拼接绝对路径
    open(file_name,'a+',encoding='utf-8').write('写东西')#


    import sys
    import os
    command = sys.argv
    print(command)
    if len(command)>1:
    cmd1 = command[1]
    if cmd1=='--help':
    print('这个是帮助文档'
    '这个python文件是用来说明sys.argv的作用')
    elif cmd1=='os':
    print('当前的操作系统是%s'%sys.platform)
    else:
    print('输入命令有误')
    else:
    print('运行python的时候要传入一个参数'
    'e.g '
    'python xx.py install ')
    
    
    # import xpinyin
    # p = xpinyin.Pinyin() #实例化
    # res = p.get_pinyin('陈伟良','')
    # print(res)

    def say():
    num1 = 1
    num2 = 2
    num3 = 3
    return num1,num2,num3
    res1,res2,res3 = say()

    #匿名函数,这个函数功能很简单,只用一次
    # 1,33


    import random
    red_num = random.sample(range(1,34),6)
    new_num = [ str(num).zfill(2) for num in red_num ] #列表生成式
    l = [ i for i in range(1,101,2) ] #生成100以内的奇数,以空间换时间
    #l2 = ( i for i in range(1,101,2) ) #生成100以内的奇数 #
    #外面是小括号的话,它就不是一个list了,它是一个生成器,
    #生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面
    #list它是把所有的元素都放在内存里面的


    for num in red_num:
    tmp=str(num).zfill(2)
    new_num.append(tmp)

    #生成器,
    # print(new_num)
    # 1 3 5
    a = 5
    b = 4
    # c = a if a > b else b # 如果a大于b的话,c=a,否则c = b ,如果不用三元运算符的话,就得下面这么写
    if a > b:
    c = a
    else:
    c = b

    c = a if a > b else b #三元表达式

    import xlwt

    book = xlwt.Workbook() #新建一个excel
    sheet = book.add_sheet('sheet1')#加sheet页
    sheet.write(0,0,'姓名')#行、列、写入的内容
    sheet.write(0,1,'年龄')
    sheet.write(0,2,'性别')
    book.save('stu.xls')#结尾一定要用.xls
    import hashlib


    m = hashlib.md5()
    # bytes
    passwd = 'NHY_*&^_1982343532'
    # passwd.encode() #把字符串转成bytes类型
    m.update(passwd.encode()) #不能直接对字符串加密,要先把字符串转成bytes类型
    print(m.hexdigest())
    #md5加密是不可逆

    #撞库
    # befor after
    # nhy123 81fb61ce98e508df8dbe8da07ad9acfc

    def my_md5(str):
    import hashlib
    new_str = str.encode() #把字符串转成bytes类型
    # new_str = b'%s'%str #把字符串转成bytes类型
    m = hashlib.md5() #实例化md5对象
    m.update(new_str) #加密
    return m.hexdigest() #获取结果返回

    # hashlib.sha512

    d = {'a':8,'b':2,'c':3}

    #字典是无序,直接对字典排序是不存在的。
    print(d.items())
    res = sorted(d.items(),key=lambda x:x[1])
    #sort,循环调用
    # print(res)
    # for k,v in res:
    # print(k,v)
    l = [
    [1,2,3,4],
    [1,2,3,4],
    [1,2,3,4],
    [1,2,3,4],
    [1,2,3,4]

    ]
    # for a,b,c,d in l:
    # print(d)

    def my(name:str):
    print(name)

    import os
    #对操作系统的一些操作
    # print(os.getcwd())#取当前工作目录
    # os.chmod("x.py",2)#给文件/目录加权限,对Windows的下面不好使
    # 1 执行
    # 2 写
    # 4 读
    # #chmod
    # print(os.chdir("../day5"))#更改当前目录
    # print(os.getcwd())
    #
    # print(os.makedirs("nhy/python"))#递归创建文件夹,父目录不存在时创建父目录
    # print(os.mkdir("zll/huangrong"))#创建文件夹
    #makedirs 创建文件夹的时候,如果父目录不存在会自动帮你创建父目录
    # print(os.removedirs("nhy/python"))#递归删除空目录
    # print(os.rmdir("test2"))#删除指定的文件夹
    #只能删除空目录
    # os.remove("test2")#只能删除文件
    # os.rmdir('test2') #只能删文件夹


    # print(os.listdir('e:\'))#列出一个目录下的所有文件

    # os.rename("test","test1")#重命名
    # print(os.stat("x.py"))#获取文件信息

    print(os.sep)#当前操作系统的路径分隔符 #

    # day5+os.sep+x.py
    # print(os.linesep)#当前操作系统的换行符
    #
    # print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
    # print(os.environ)#当前系统的环境变量
    # print(os.name)#当前系统名称 Windows系统都是nt linux都是posix
    # res = os.system('ipconfig') #执行操作系统命令的,但是获取不到结果
    #res = os.popen('ipconfig').read() #可以获取到命令执行的结果
    # __file__ #获取到当前文件的绝对路径
    # print(os.path.abspath(__file__))#获取绝对路径
    # print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名

    # print(os.path.dirname("e:\syz\ly-code"))#获取父目录,获取它的上一级目录
    # print(os.path.basename("e:\syz\ly-code\a.txt"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
    # print(os.path.exists(r"E:syzly-codeday6"))#目录/文件是否存在
    # print(os.path.isabs("../day5"))#判断是否是绝对路径
    # print(os.path.isfile("xiaohei.py"))
    #判断是否是一个文件,1、文件要存在2、必须是一个文件
    # print(os.path.isdir("e:\syz1"))#是否是一个路径,目录是否存在
    size = os.path.getsize('x.py') #获取文件的大小
    #不能超过2m
    # print(size)

    # print(os.path.join("root",'hehe','mysql','a.sql'))#拼接成一个路径

    # for abs_path,dir,file in os.walk(r'E:syzly-codeday6'): #获取目录下内容 os.listdir()
    # #
    # print(abs_path,dir,file)
    # abs_path 当前循环的绝对路径
    # dir 目录下面所有的文件夹 [ ]
    # file 目录下面的所有文件 []

    #1、常用的模块 os,sys,time,datetime、hashlib
    #2、怎么导入其他目录下的模块

    #3、操作数据库
    import sys
    # print(sys.platform) #判断操作系统
    # #python的环境变量
    # sys.path.append(r'E:syzly-codeday5')
    # sys.path.insert(0,r'E:syzly-codeday5')
    # print(sys.path)

    # import nhy
    # nhy.my()
    # print(nhy.name)
    # import nhy
    # nhy.my()
    # print(nhy.name)

    print(sys.argv) #用来获取命令行里面运行python文件的时候传入的参数
    
    
    import pymysql
    # 1、连上数据库 账号、密码 ip 端口号 数据库
    #2、建立游标
    #3、执行sql
    #4 、获取结果
    # 5、关闭游标
    #6、连接关闭
    coon = pymysql.connect(
    host='118.24.3.40',user='jxz',passwd='123456',
    port=3306,db='jxz',charset='utf8'
    #port必须写int类型,
    #charset这里必须写utf8
    )
    cur = coon.cursor() #建立游标
    # cur.execute('select * from stu;')#执行sql语句
    cur.execute('insert into stu (id,name,sex) VALUE (1,"牛寒阳","女");')
    # delete update insert
    coon.commit() #必须得coomit
    res = cur.fetchall() #获取所有返回的结果
    print(res)
    cur.close()#关闭游标
    coon.close()#关闭连接
    
    
    import time

    #1、时间戳 从unix元年到现在过了多少秒
    #2、格式化好的时间

    #先转成时间元组

    # print(time.time()) #获取当前时间戳
    # time.sleep(10)
    today = time.strftime('%Y%m%d%H%M%S')
    # print(today)

    # print(time.gmtime()) #默认取的是标准时区的时间
    s=time.localtime(1514198608) #取到的是当前时区的时间
    # print(time.strftime('%Y-%m-%d %H:%M:%S',s))
    #时间戳转换时间元组
    # 1、时间戳转成时间元组 time.localtime()
    # 2、再把时间元组转成格式化的时间
    def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
    #1、默认返回当前格式化好的时间
    #2、传入时间戳的话,把时间戳转换成格式化好的时间,返回
    if timestamp:
    time_tuple = time.localtime(timestamp)
    res = time.strftime(format,time_tuple)
    else:
    res = time.strftime(format) #默认取当前时间
    return res

    # 2018-4-21
    # tp = time.strptime('2018-4-21','%Y-%m-%d') #把格式化好的时间转成时间元组的
    # print(time.mktime(tp)) #把时间元组转成时间戳
    def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):
    # 20180421165643
    #默认返回当前时间戳
    if str: #如果传了时间的话
    tp = time.strptime(str,format) #格式化好的时间,转成时间元组
    res = time.mktime(tp)#再转成时间戳
    else:
    res = time.time() #默认取当前的时间戳
    return int(res)

    import datetime
    print(datetime.datetime.today()) #获取当前时间,精确到秒
    print(datetime.date.today()) #精确到天
    res = datetime.datetime.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=5)
    print(res.strftime('%Y-%m-%d'))
    
    
    上周回顾
    函数
    1、简化代码
    2、提高代码的复用性
    def func(name,sex='男',*args,**kwargs): #形参
    today = '20180421'
    retrun today

    func('小黑') #实参
    没有写返回值的话返回None
    retrun
    1、返回函数处理的结果
    2、结束函数
    常量:
    全都是大写字母来定义
    PORT
    局部变量
    全局变量
    如果要在函数里面修改全局变量的话,要先用global声明
    global name
    内置函数
    len()
    type()
    id()
    max()
    dir(name)
    sorted()
    open()
    round(1,11)
    range(1,19) #[1,18]


    模块
    1、pip install xpinyin #pip python3.4以上的版本是自带的
    2、
    xpinyin.tar.gz
    python setup.py install
    xpinyin.whl
    pip install xpinyin.whl
    标准模块
    1、python自带的,import random,json,os
    2、第三方模块
    3、自己写的python文件

    函数返回多个值:
    1、函数如果返回多个值的话,它会把这几个值放到一个元组里面
    2、函数如果返回多个值的话,也可以用多个变量来接收


    new_num = [ str(num).zfill(2) for num in red_num ] #列表生成式
    l = [ i for i in range(1,101,2) ] #生成100以内的奇数,以空间换时间
    #l2 = ( i for i in range(1,101,2) ) #生成100以内的奇数 #
    #外面是小括号的话,它就不是一个list了,它是一个生成器,
    #生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面
    #list它是把所有的元素都放在内存里面的

    lambda
    匿名函数
    lambda x: x+1 #冒号后面的是函数体,也是函数的处理逻辑,冒号前面的返回值
    常用的标准模块
    os模块:
    os.listdir('e:\') #列出目录下所有的文件和文件夹
    os.remove() #删除文件
    os.rename(old,new) #重命名
    print(os.sep)#当前操作系统的路径分隔符 #
    # res = os.system('ipconfig') #执行操作系统命令的,但是获取不到结果
    #res = os.popen('ipconfig').read() #可以获取到命令执行的结果
    # print(os.path.abspath(__file__))#获取绝对路径
    #print(os.path.dirname("e:\syz\ly-code"))#获取父目录,获取它的上一级目录
    # print(os.path.exists(r"E:syzly-codeday6")) #判断文件或者目录是否存在
    print(os.path.isfile("xiaohei.py"))
    #判断是否是一个文件,1、文件要存在2、必须是一个文件
    print(os.path.isdir("e:\syz1"))#是否是一个路径,目录是否存在
    size = os.path.getsize('x.py') #获取文件的大小
    os.path.join("root",'hehe','mysql','a.sql') #拼接路径
    for abs_path,dir,file in os.walk(r'e: hy'):
    print(abs_path,dir,file)
    # abs_path 当前循环的绝对路径
    # dir 目录下面所有的文件夹 [ ]
    # file 目录下面的所有文件 []

    python导入模块的时候的顺序:
    1、从当前目录下找需要导入的python文件
    2、从python的环境变量中找 sys.path

    导入模块的实质:
    就是这这个python文件从头到尾执行一遍

    import nhy
    nhy.my()
    print(nhy.name)

    from nhy import my,name,
    my()
    print(name)

    两种方式是一样的
    sys.argv
    用来获取命令行里面运行python文件的时候传入的参数,它是一个list
    这个list默认就有一个参数,就是当前这个文件名


    作业:
    1、logs目录下,有一部分文件是空的
    1、删除log目录下,所有的空文件
    2、删除5天前的文件
    2、写代码实现,把我的数据库里面的stu表中的数据,导出到excel中
    #编号 名字 性别
    3、 注册
    登录
    数据都存在数据库里面
    id username passwd
    注册的时候,密码存的是加密之后的密码
    username pwd cpwd,都是必填的
    用户不能重复
    登录
    账号
    密码
    登录成功之后打印当前的日期
  • 相关阅读:
    使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
    便携版WinSCP在命令行下同步文件夹
    ffmpeg (ffprobe)分析文件关键帧时间点
    sqlite删除数据或者表后,回收数据库文件大小
    ubuntu 20.04下 freeswitch 配合 fail2ban 防恶意访问
    ffmpeg使用nvenc编码的结论记录
    PC版跑跑卡丁车 故事模式 亚瑟传说章节 卡美洛庆典 2阶段 心灵之眼 攻略
    There was an error loading or playing the video
    Nvidia RTX Voice 启动报错修复方法
    火狐浏览器 关闭跨域限制
  • 原文地址:https://www.cnblogs.com/yihan2018/p/8987123.html
Copyright © 2011-2022 走看看