新手学习python(六)标准模块

模块,其实就是一个python文件。

标准模块: 是指python自带的这些模块,直接import 就能用的。例如string ,random, datetime, os ,json, sys

1)string 模块  (参看新手学习python(三)字符串方法)

2)random 随机模块(生成随机数相关的函数)

import random    

random.random()    #随机生成(0,1)的浮点数

random.randint(1000,9999)   #随机生成1000-9999之间的整数

random.randrange(0,21,2)    #随机生成1-21之间的偶数

random.uniform(0,20)     #随机生成0,20之间的浮点数

random.choice(['a','b','c','d'])   #从列表中随机选一个元素

random.shuffle([1,2,3,4,5])    #对列表元素随机排序

random.sample('abcdefg',2)    #从指定序列中随机获取指定长度的片段

3)datetime & time 时间模块

关于time,要了解两个概念:1、时间戳:从unix元年到现在过了多少秒; 2、格式化好的时间,例如 20180523102323 年月日时分秒

3.时间元祖 :time.struct_time(tm_year=2016,  tm_mon=7, tm_mday=21,  tm_hour=22,  tm_min=32, tm_sec=51,   tm_wday=3,  tm_yday=203, tm_isdst=0)

time.time()   #获取当前时间戳

time.sleep(10)    #停顿10秒

time.strftime('%Y-%m-%d %H:%M:%S')   #取当前格式化好的时间。格式可变化

time.gmtime()   #默认取的是标准时区的时间

time.localtime()   #取的当前时区的时间

---时间戳和格式化的时间的相互转换

1.定义一个函数,传入时间戳的话,把时间戳转化成格式化好的时间,返回;默认返回当前格式化好的时间

def timestamp_to_fomat(time=None,format='%Y-%m-%d %H-%M-%S'):    #format格式可变化

    if timestamp:

        time_tuple=time.localtime(timestamp)     #时间戳先转成时间元祖

        res=time.strftime(format,time_tuple)     #时间元祖转成格式化好的时间

   else:

        res=time.strftime(format)   #默认取当前时间

    return res 

2.定义一个函数,传入格式化好的时间,返回时间戳;默认返回当前时间戳

def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):
if str:
tp=time.strptime(str,format) #先转换成时间元祖
res=time.mktime(tp) #再转换成时间戳
else:
res=time.time() #默认取当前的时间戳
return int(res)
 ---------------

datetime.datetime.today()   #获取当前时间,精确到秒

datetime.date.today()     #精确到天

datetime.timedelta(-5)   #5天前的时间,还可以minutes=5 ,5分钟后;seconds=5,5秒后;weeks=4 ,4周后

4)os模块,对操作系统的一些操作

os.getcwd()    #取当前工作目录
os.chmod('D:/python自动化/day6常用模块/x.py',2) #给文件,目录加权限,对windows不好使,操作linux可用
#r4,w2,x1,即4是读,2是写,1是执行
os.chdir('../') #更改当前目录,更改到上一级目录
os.makedirs('tanzhen\\aaa') #递归创建文件夹,父目录不存在会自动帮忙创建父目录
os.mkdir('test1') #创建文件夹,如果父目录不存在会报错
os.removedirs('tanzhen\\aaa') #递归删除空目录
os.rmdir('test1') #删除指定的文件夹,只能删除空目录
os.remove(test) #删除文件
os.listdir('.') #列出一个目录下的所有文件 .代表当前路径
os.rename('aaa.txt','bbb.txt') #给文件重命名
os.stat('bbb.txt') #获取文件信息
os.sep #当前操作系统的路径分隔符,可用于拼路径,适用于多平台转换
os.linesep #当前操作系统的换行符
os.pathsep #当前系统的环境变量中的每个路径的分隔符
os.environ #当前系统的环境变量
os.name #当前操作系统,windows打印nt,linux打印posix

res=os.system('ipconfig') #执行操作系统命令,但是获取不到结果
res=os.popen('ipconfig').read() #可以获取到命令执行的结果
print(res)

os.path.abspath('.') #获取绝对路径, (.代表当前路径)
os.path.abspath(__file__) #取当前文件的绝对路径,前后都是双下划线
os.path.split('d:\python自动化\\byz-code\day6\\bbb.txt') #分割路径和文件名
os.path.dirname('d:\python自动化\\byz-code') #获取父目录,也就是获取它的上一级目录
os.path.basename('d:\python自动化\\byz-code\\bbb.txt') #获取绝对路径的最后一级,如果是文件显示文件名
os.path.exists("d:\python自动化\\byz-code\day6\\bbb.txt") #判断目录文件是否存在
os.path.isfile('bbb.txt') #判断是否是一个文件,1.文件要存在,2必须是一个文件
os.path.isdir('e:/rere/rere') #是否是一个路径,目录是否存在
size=os.path.getsize('bbb.txt') #获取文件的大小,不能超过2M
print(size)
os.path.join('root','hehe','mysql','a.sql') #拼接成一个路径
for abs_path,dir,file in os.walk('D:\python自动化\\byz-code\day6'):  #递归循环
print(abs_path,dir,file)
#abs_path 当前循环的绝对路径 ,dir目录下面的所有文件夹[], file目录下面的所有文件[]

5)json模块,json串是一个字符串

json.loads()     #把json串,变成python的数据类型

f = open('product.json',encoding='utf-8')

json.load(f)      #传一个文件,他会帮你读文件

d={

'zhangsan':{'addr':'北京','age':28},

'lisi':{'addr':'上海','age':38}

      }

json.dumps(d,ensure_ascii=False,inden=4)    #字典转成json,字典转成字符串

json.dump(d,fw,ensure_ascii=False,indent=10)    #操作文件

6)sys模块

sys.platfor)  #判断操作系统
sys.path #python的环境变量

sys.path.append('../day5') #(..代表上一级目录)把目录加入到环境变量里,再导入模块,就可使用该模块
sys.path.insert(0,r'd:\python自动化\byz-code\day5') #加到环境变量首个文件内

# import my_random #day5目录下的一个ptyhon文件
sys.argv #来获取命令行里面运行python文件 (文件名不要用中文)

=====小练习======
1、写一个生成双色球号码的一个程序,生成的号码写到文件里面
# 中奖号码由6个红色球号码和1个蓝色球号码组成
# 篮球范围:01-16
# 红球范围:01-33

import random,json,string

def select(start,end,num): #生成一组蓝球和红球的函数
a_list=[]
while len(a_list) !=num:
a=random.randint(start,end)
a=str(a).zfill(2) #取出来的数字补齐2位
if a not in a_list:
a_list.append(a)
return a_list

def write(content): #写入文件的函数
with open('ticket.txt', 'w', encoding='utf-8') as f: # 把生成的双色球号码全部写入文件
content_json=json.dumps(content,ensure_ascii=False,indent=4)
f.write(content_json)

def main():
tickets = {}
num=input('请输入双色球投注数量:').strip()
i=1
if num.isdigit():
while len(tickets)!=int(num):
red_ticket=str(select(1,33,6))
blue_ticket=str(select(1,16,1))
if red_ticket not in tickets.values() and blue_ticket not in tickets.values():
tickets[i]={'红球号码':red_ticket,'蓝球号码':blue_ticket,}
i +=1
write(tickets)
else:
print('请输入数字。')

main()

------
2、把双数日期的日志,里面随便写点东西
思路:1.获取log目录下面的所有文件 os.walk
2.根据文件名来判断,是否双数日期,分割字符串,取到日期
3.跟2%==0
4.打开这个文件 open()

import os
for abs_path,dir,file in os.walk(r'D:\python自动化\byz-code\day6\logs'):
#print(file)
for f in file: #file是存放的文件名
day=f.split('.')[0].split('-')[-1] #循环文件名,对文件名进行分割,获取文件名最后日期
#print(day)
if int(day)%2==0:
file_name=os.path.join(abs_path,f) #拼接绝对路径
print(file_name)
open(file_name,'a+',encoding='utf-8').write('aaaaa') #没有给文件赋值,不用关闭文件



 

猜你喜欢

转载自www.cnblogs.com/bainbian1234/p/9048312.html
今日推荐