标签:`` data main char menu rbo ted 导入 date
目录
模块就是py文件
注意文件的命名不能和模块的名字相同,正则在寻找的时候首先从当前路径寻找,然后从内置查找
Python中有三种表示时间的方法:
1.时间戳
- 时间戳timestap(浮点型数字):(计算机)
time.time()
1970年1月1日的是0
2.元组(struct time)结构化时间
- 结构化时间:(操作时间)
>>> time.localtime() # 默认放的是time.time()
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=9, tm_min=15, tm_se
c=53, tm_wday=2, tm_yday=116, tm_isdst=0)
>>>
c=time.localtime()
拿到时间:
c.tm_year
3.格式化的时间字符串
- 格式化的时间字符串:(给人看)
time.strftime()
>>> time.strftime("%Y-%m-%d")
‘2017-04-26‘
>>> time.strftime("%Y-%m-%d %X")
‘2017-04-26 09:13:02‘
字符串时间和时间戳是不能直接转换的,通过结构化时间转换
通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
import time
print(time.time())
struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等
print(time.localtime())
结果:
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=16, tm_min=0, tm_sec=5, tm_wday=2, tm_yday=116, tm_isdst=0)
格式化的时间需要参数,可以用help查看
print(time.strftime(‘%Y-%m-%d %X‘))
使用help(time.strftime)
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale‘s abbreviated weekday name.
%A Locale‘s full weekday name.
%b Locale‘s abbreviated month name.
%B Locale‘s full month name.
%c Locale‘s appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale‘s equivalent of either AM or PM.
import time
print(time.localtime(time.time())) # 时间戳--》结构化时间 现在是当前时间
print(time.localtime(time.time()+86400)) # 明天的时间
print(time.gmtime(time.time())) # 这是标准时间
print(time.mktime(time.localtime()))
import time
res=time.strftime(‘%Y-%m-%d %X‘,time.localtime())
print(time.strptime(res,‘%Y-%m-%d %X‘)) # string format
先获取格式化的时间,赋值给res,res作为参数 后面是格式
print(time.strftime(‘%Y-%m-%d %X‘,time.localtime()))
print(time.strftime(‘%Y-%m-%d %X‘)) #time.localtime() 是默认放上的
random.random() # 0-1的浮点型数字
random.randint(1,4) # [1-4] 取整数
random.randrange(1,4) #[1-4) #没有4 顾头不顾尾
random.choice([11,44,55]) # 从这里面中随机取
random.sample([11,44,55],2) # 从这里面中随机取 参数2是取两个
random.uniform(1,3) # 定义范围的浮点数
random.shuffle([11,22,33]) # 重新打乱
item=[1,2,3,4]
print(random.shuffle(item))
print(item)
生成验证码:
需求是生成5位的验证码,是随机的字母数字,字母有大写小写
分析:关键是通过chr能够把数字转换成相应的字母,这里用的是ASCII码表的知识
import random
def Verification():
s=‘‘ # 新建一个字符串用于拼接
for i in range(5): # 生成5位数的验证码
rnum = random.randint(0,9) # 随机生成0-9的数字
rL = chr(random.randint(65,90)) # 大写字母 关键是chr能够把数字转化成ASCII
rl = chr(random.randint(97,122)) # 小写字母
res = random.choice([rnum,rL,rl]) # 从列表中随机取
s+=str(res) #把数字强制转换成str,循环追加字符串中
return s
print(Verification())
把任意长度的数据转换成固定长度的数据(通常用16进制的字符串表示)
严格来说,这个并不是加密,加密的是能够解密的,hash是通过算法把数据转换,例如密码保存在数据库中是MD5,用户输入密码后,会把密码用md5转换,用转换后的和数据库中的比对
摘要算法:MD5 SHA…
ftp传文件的时候可以通过吧文件的每一行进行update
import hashlib # 导入hashlib模块
a=hashlib.md5() # 拿到的是内存地址
a.update(‘hello‘.encode(‘utf-8‘))
print(a.hexdigest()) # 打印的是hello的MD5值
a.update(‘hello‘.encode(‘utf-8‘))
print(a.hexdigest()) # 此时就是hellohello进行的转换
b=hashlib.md5() # 重新定义一个对象n
b.update(‘hellohello‘.encode(‘utf-8‘))
print(a.hexdigest()) #此时打印的值是一样的
结果:
5d41402abc4b2a76b9719d911017c592
23b431acfeb41e15d466d75de822307c
23b431acfeb41e15d466d75de822307c
调用的方法是一样的,只是名字不一样
import hashlib
m=hashlib.md5()
m.update(‘hello‘.encode(‘utf-8‘)) #
print(m.hexdigest())
n=hashlib.sha1()
n.update(‘hello‘.encode(‘utf-8‘))
print(n.hexdigest()) # sha1的用法
结果:位数不一样
5d41402abc4b2a76b9719d911017c592
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
加盐的应用,适用于系统添加固定的字符强化加密
import hashlib
a = hashlib.md5(‘hello‘.encode(‘utf-8‘)) # 加盐slat
a.update(‘hello‘.encode(‘utf-8‘))
print(a.hexdigest())
b=hashlib.md5() # 重新定义一个b
b.update(‘hellohello‘.encode(‘utf-8‘)) # 测试加盐是加在了前面
print(b.hexdigest())
os模块是与操作系统交互的接口
记住功能
1.os.getcwd() 当前绝对路径
2.os.chdir(r’绝对路径’) 切换目录
3.os.curdir 返回当前目录 就是.
4.os.pardir ..
5.os.makedirs(“aaa/bbb”) 在当前目录生成多层递归
6.os.removedirs(‘aaa’) 如果目录为空,则删除
7.os.rmdir()
8.os.listdir(r””) 就是ls功能 把当前的路径下的所有的内容
9.os.rename(“old,new”)
10.os.stat(r””) 文件信息 返回的是文件的结构化信息(文件大小、访问时间、)
11.os.sep win是\,linux是/
12.os.linesep 行终止符号 win是\t\n linux — \n
13.os.pathsep 文件路径拼接 win; linux
14.os.name win — nt linux— posix 可以判断平台
15.os.system(“dir”) # 类似bash 可以输入ls cd
16.os.path.abspath(“test.txt”) basepath+filename
17.os.dirname(“test.txt”) 文件路径
18.os.bsename(“test.txt”) 文件名
19.os.path.exits()
20.isabs
21.isdir
22.os.path.join(s1,s2)路径的拼接 在不同的平台的情况能够自动
23.os.getatime(path)
24.os.getmtime(path)
25.os.getsize(path) 获取文件的大小
import os
print(os.getcwd()) 获得当前的绝对路径
print(os.getcwd())
os.chdir(r"D:\Python_fullstack_s4\32") # 相当于cd命令
print(os.getcwd()) # 此时查看就是改变的路径
结果:
D:\Python_fullstack_s4\33
D:\Python_fullstack_s4\32
print(os.curdir) # 返回当前目录 就是.
print(os.pardir) # 获取当前目录的父目录字符串 ..
结果:
.
..
os.makedirs("aaaa/bbb") # 递归生成多层目录
os.removedirs("aaaa/bbb") # 删除这个目录
os.rename(‘aaa‘,‘bbb‘) # 把文件aaa重命名成bbb
res=os.stat(‘D:\Python_fullstack_s4\day33/bbb‘)
print(res)
结果:
os.stat_result(st_mode=33206, st_ino=1970324837071832, st_dev=374768, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1493205622, st_mtime=1493205622, st_ctime=1493205622)
os.mkdir(‘123‘) # 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘123‘) # 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.remove(r‘D:\Python_fullstack_s4\day33\bbb‘) # 删除文件
print(os.name)
```结果 win---nt
linux---posix
```python
os.system(‘dir‘) #里面是命令
print(os.path.abspath(‘test.txt‘)) #返回path规范化的绝对路径
abs=os.path.abspath(‘test.txt‘)
print(os.path.basename(abs))
print(os.path.dirname(abs))
test.txt
D:\Python_fullstack_s4\day33
print(os.path.exists(‘test.txt‘) ) # 判断文件是否存在
print(os.path.isabs(‘test.txt‘)) #判断是否是绝对路径
print(os.path.isdir(‘aa‘)) # 判断是否存在目录
s1=r"C:\Users\Administrator\PycharmProjects"
s2=r"py_fullstack_s4\day33"
#print(s1+os.sep+s2)
ret=os.path.join(s1,s2) # 推荐方式
print(ret)
‘‘‘
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: (‘.‘)
os.pardir 获取当前目录的父目录字符串名:(‘..‘)
os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录
os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname‘) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat(‘path/filename‘) 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
‘‘‘
sys是与解释器有关的
1.sys.exit() 程序退出
2.sys.version Python版本
3.sys.platform 返回操作系统的平台
4.sys.argv 程序执行前输入参数,返回值是一个列表 可以去到
5.sys.path sys的寻找路径的优先级 大一点的程序是在不同的目录中的、模块化
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
标签:`` data main char menu rbo ted 导入 date
原文地址:http://www.cnblogs.com/Python666/p/6771717.html