day6

Posted yfzhp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day6相关的知识,希望对你有一定的参考价值。

import os,datetime
dirs = [‘tomcat‘,‘nginx‘,‘apache‘,‘python‘,‘app‘,‘android‘,‘ios‘]
os.chdir(r‘E:\syz\ly-code\day6\logs‘)
base_path = r‘E:\syz\ly-code\day6\logs‘
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:\syz\ly-code\day6\logs‘):
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)#当前操作系统的换行符
# \n \r\n
# 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:\syz\ly-code\day6"))#目录/文件是否存在
# 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:\syz\ly-code\day6‘): #获取目录下内容 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:\syz\ly-code\day5‘)
# sys.path.insert(0,r‘E:\syz\ly-code\day5‘)
# 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:\syz\ly-code\day6")) #判断文件或者目录是否存在
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:\nhy‘):
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,都是必填的
用户不能重复
登录
账号
密码
登录成功之后打印当前的日期


















以上是关于day6的主要内容,如果未能解决你的问题,请参考以下文章

省队集训Ⅱ-Day6

Day6 function

day6

Python之路Day6

Python-模块使用-Day6

Python学习记录day6