模块-os模块/random模块/datetime模块/写日志

 一、获取当前目录的路径

os.path.abspath('.')# 取绝对路径

os.getcwd()# 取当前路径

.代表当前目录 ..上一级目录 ../..

二、执行操作系统命令

1.os.system()

os.system('ipconfig')
# 用来执行操作系统命令,但是只能帮你执行,获取不到结果;执行后会出现黑色乱码显示



# res = os.system('ipconfig')
# # 用来执行操作系统命令,但是只能帮你执行,获取不到结果
# print(res)# 输出为0
# 输出0,则执行成功;输出1,则执行失败

res = os.system('haha')
print(res)# 输出为1

 

2.os.popen()

用来执行操作系统命令,并可以获取到结果

res = os.popen('ipconfig')
# 用来执行操作系统命令,并能够获取到结果
print(res)
# 运行结果:<os._wrap_close object at 0x00000000006BB9B0>

 

res = os.popen('ipconfig').read()
# 用来执行操作系统命令,并能够获取到结果
print(res)
# 运行结果:
# Windows IP 配置
# 
# 
# 以太网适配器 Bluetooth 网络连接:
# 
#    媒体状态  . . . . . . . . . . . . : 媒体已断开
#    连接特定的 DNS 后缀 . . . . . . . : 
# 
# 以太网适配器 本地连接:
# 
#    连接特定的 DNS 后缀 . . . . . . . : 
#    本地链接 IPv6 地址. . . . . . . . : fe80::48f:a39e:32b4:b578%12
#    IPv4 地址 . . . . . . . . . . . . : ***.**.**.***
#    子网掩码  . . . . . . . . . . . . : 255.255.255.0
#    默认网关. . . . . . . . . . . . . : ***.**.**.254
# 
# 无线局域网适配器 无线网络连接:
# 
#    媒体状态  . . . . . . . . . . . . : 媒体已断开
#    连接特定的 DNS 后缀 . . . . . . . : 
# 
# 隧道适配器 isatap.{012DAA49-8300-457F-9416-9BF1E07478C0}:
# 
#    媒体状态  . . . . . . . . . . . . : 媒体已断开
#    连接特定的 DNS 后缀 . . . . . . . : 
# 
# 隧道适配器 本地连接* 3:
# 
#    连接特定的 DNS 后缀 . . . . . . . : 
#    IPv6 地址 . . . . . . . . . . . . : 2001:0:ca6a:c727:1816:d57:53ef:f484
#    本地链接 IPv6 地址. . . . . . . . : fe80::1816:d57:53ef:f484%20
#    默认网关. . . . . . . . . . . . . : ::
# 
# 隧道适配器 isatap.{402A9BB8-4D45-4970-917B-73E513B03EAE}:
# 
#    媒体状态  . . . . . . . . . . . . : 媒体已断开
#    连接特定的 DNS 后缀 . . . . . . . : 
# 
# 隧道适配器 isatap.{832D9784-4EEB-4977-80DF-9E9F5740B3C3}:
# 
#    媒体状态  . . . . . . . . . . . . : 媒体已断开
#    连接特定的 DNS 后缀 . . . . . . . : 

3. os.listdir()  获取某个目录下的内容

print(os.listdir('D:\py-tmz-master') ) #['tmz-code-master', 'tmz-code-master.zip']

4.os.mkdir()  新建目录

os.mkdir('python')
os.mkdir('python/day2')# 创建多级目录,要有父目录,否则会报错

5.os.makedirs()  新建目录,父目录不存在的时候,会创建父目录

os.makedirs('java/day1')
os.makedirs('java/day2')

6. os.remove() 删除文件,不能删除文件夹

os.remove('python') #删除文件,不能删除文件夹

7.  os.rmdir() 删除空文件夹

os.rmdir('java')#删除空文件夹的

8.  os.rename() 重命名文件或文件夹

os.rename('java','python') #重命名,文件和文件夹都可以

9. os.getcwd()  获取当前目录路径

print(os.getcwd())#获取当前所在的目录

10.  os.chdir()  进入到某个目录里面

os.chdir('/Users/nhy/PycharmProjects/tmz-code')#进入到某个目录里面

11. os.environ 获取系统环境变量的配置内容

print(os.environ)#获取系统环境变量里面配置的内容

12.

# os.path.join() # 拼接路径
# os.path.abspath() # 把相对路径,转换成绝对路径
# os.path.dirname() # 取父目录
# os.walk()

拼接路径:

p = 'e:'+os.path.sep+'movies'+os.path.sep+'欧美大片'
print(p)  # e:\movies\欧美大片
print(os.path.join('e:','movies','欧美大片','复仇者联盟.mp4'))  # e:movies\欧美大片\复仇者联盟.mp4

把相对路径转换成绝对路径:

print(os.path.abspath(r'../day4/a.json')) #把相对路径,转换成绝对路径  #/Users/nhy/PycharmProjects/tmz-code/day4/a.json

取父目录:

print(os.path.dirname(r'/Users/nhy/PycharmProjects/tmz-code/day4/a.json') )#取父目录 
#/Users/nhy/PycharmProjects/tmz-code/day4

 

13.

# print(os.path.sep)#当前系统的路径分隔符
# print(os.path.isfile('a.py')) #是否为文件
# print(os.path.isdir('a.py')) #是否为文件夹
# print(os.path.exists('a.py')) #文件/文件夹是否存在
# print(os.path.getsize('a.py')) #获取大小
# print(os.path.getctime('a.py')) #创建时间
# print(os.path.getmtime('a.py')) #修改时间
# print(os.path.getatime('a.py')) #最后一个访问时间

14. os.path.split()  分隔路径和文件名

print(os.path.split('/Users/nhy/PycharmProjects/tmz-code/day5/a.py'))
#分隔路径和文件名的

15.小例子:

for cur_path,dirs,files in os.walk(r'/Users/nhy/'):
    print('当前在%s目录下查找'%cur_path)
    for file in files:
        if file.endswith('.mp4') or file.endswith('.avi'):
            print('发现视频文件在%s目录下'%cur_path)
            break

 


三、random模块

import random

print(random.random()) #取小于1的随机小数
print(random.randint(1,10))# 指定范围(包含10)[1,10],取随机的整数

s = 'abcdefgh'
print(random.choice(s))# 随机选择一个,只能选择一个
print(random.sample(s,4))# 随机选择N个值,输入4,则随机选择4个,放在list中
print(random.uniform(8.8,9.9))# 指定一个范围,然后取随机小数

 

# print(random.choice(string.ascii_lowercase))#随机选择一个元素
# print(random.sample(string.ascii_lowercase,4))
#
# l=[random.choice(string.digits)  for i in range(6)]
# l2 = random.sample(string.digits,6) #取的这几个元素里面,它不会有重复的
#
# print(''.join(l))
# print(''.join(l2))

random.shuffle() 打乱顺序

l = [1,2,3,4,5,6,7,8]
print('打乱之前的',l)
random.shuffle(l)
print('打乱之后的',l)
# 打乱之前的 [1, 2, 3, 4, 5, 6, 7, 8]
# 打乱之后的 [3, 8, 4, 5, 6, 1, 2, 7]

 

四、datetime模块

import datetime

print(datetime.date.today()) # 2018-07-12,当天的日期,只有日期
print(datetime.datetime.today()) # 2018-07-12 19:22:28.911401,当天的时间,有日期有时间

date = datetime.date.today() + datetime.timedelta(-10)# 写负数,则为几天前;写正数,则为几天后。默认单位为天
print(date)

res = datetime.datetime.today() + datetime.timedelta(hours=-8,minutes=-20)# 写负数,则为几个小时前;写正数,则为几小时后。默认单位为天
print(res.time())# 只取到时间
print(res.date())# 只取到日期
print(res.timestamp())# 时间戳
print(res.strftime('%Y-%m %H:%M:%S'))# 取到格式化好的时间

五、写日志

import nnlog

my_log = nnlog.Logger('abc.log',level='debug',when='S',backCount=5)
# level默认级别为debug;when按天生成日志,默认为天;backCount=5,最多保留五个,默认为五个
# debug
# info
# warning
# error
my_log.debug('这是debug的')
my_log.info('info级别的')
my_log.warning('warning级别的')
my_log.error('error级别的')

 六、造日志的脚本:

def timestamp_to_str(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
    '''时间戳转格式化好的时间,如果没有传时间戳,就获取当前的格式化时间'''
    if timestamp:
        time_tuple = time.localtime(timestamp) #把时间戳转成时间元组
        result = time.strftime(format,time_tuple) #把时间元组转成格式化好的时间
        return result
    else:
        return time.strftime(format)


import time,os,random
l = ['ios','android','nginx','tomcat','python','blog','apache','mysql','redis']

for i in l:
    p = os.path.join('logs',i)
    os.makedirs(p)
    for j in range(30):
        t = int(time.time())-86400*j
        time_str = timestamp_to_str(t,'%Y-%m-%d')
        log_name = '%s_%s.log'%(i,time_str)
        abs_file_path = os.path.join('logs',i,log_name)
        fw = open(abs_file_path, 'w', encoding='utf-8')
        if random.randint(1,10)%2==0:
            fw.write('胜多负少防守打法双方都')
        fw.close()

 七、

s='235423236236'

result = sorted(s,reverse=True)
print(result)
# ['6', '6', '5', '4', '3', '3', '3', '3', '2', '2', '2', '2']

 

# vs = sorted(d.values(),reverse=True)
# for v in vs:
#     for key,value in d.items():
#         if v==value:
#             print(key,v)

def get_value(x):
    return x[1]
d = {
    'fd':100,
    'ds':93,
    'lhy':88,
    'hzy':35
}
result = sorted(d.items(),key=lambda x:x[1],reverse=True)
# result = sorted(d.items(),key=get_value,reverse=True)

print(result)
#[('fd', 100), ('ds', 93), ('lhy', 88), ('hzy', 35)]

 

 

 

 

posted @ 2018-07-11 14:02  灿烂初秋  阅读(377)  评论(0编辑  收藏  举报