码迷,mamicode.com
首页 > 其他好文 > 详细

time模块、random随机模块、os模块、进度条打印

时间:2020-04-01 00:38:23      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:temp   实现   大于等于   cmd   部分   文件夹路径   使用   os模块   env   

一、时间模块

1、time模块

在python中时间可分为三种格式:

1、时间戳:从1970年到现在经过的秒数

print(time.time())  #1585571976.0806346

作用:用于计算时间间隔的计算

start = time.time()
time.sleep(3)
stop = time.time()
print(stop - start)  #3.0001108646392822 时间间隔为3秒

2、按照某种个格式显示的时间:

作用:用于比较清楚的展示时间( 以指定格式输入"年月日 时分秒")

print(time.strftime(‘%Y-%m-%d %H:%M:%S %p‘))  #2020-03-30 20:43:01 PM
print(time.strftime(‘%Y-%m-%d %H:%M:%S‘))  #2020-03-30 20:43:46

3、格式化的时间(得到是一个关于时间的元组)

作用:用于单独的获取时间的某一部分

res = time.localtime()
print(res)
#time.struct_time(tm_year=2020, tm_mon=3, tm_mday=30, tm_hour=20, tm_min=53, tm_sec=23, tm_wday=0, tm_yday=90, tm_isdst=0)
print(res.tm_year)  #2020 只获取当前时间的年份
print(res.tm_mon)  #3 只获取当前时间的月份

2、datetime模块

1、以默认的格式输入当前的时间,不用指定格式。

print(datetime.datetime.now())  #2020-03-30 21:00:45.586392

2、可以获得加或减一段时间后应该显示的(有点类似增/减量赋值),跟时间戳计算不同的是,前者计算得到是两个时间点间的间隔时间,而后者得到的是一个时间点加减时间间隔后获得的另一个时间点。

print(datetime.datetime.now() + datetime.timedelta(days=1))
print(datetime.datetime.now() + datetime.timedelta(hours=20))

3、时间格式之间的转换:

1、struct_time->时间戳

import time

res = time.localtime()
print(time.mktime(res))

2、时间戳->struct_time

res = time.time()
print(time.localtime(res))

ps:世界标准时间与本地时间,时区不一样所以当前小时不同,其他都相同

print(time.localtime())
print(time.gmtime())

3、struct_time->按的字符串形式的时间

res=time.localtime()
print(time.strftime(‘%Y-%m-%d %H:%M:%S‘))
print(time.strptime(‘2020-11-11 11:11:11‘,‘%Y-%m-%d %H:%M:%S‘))

4、表示时间的字符串与时间戳之间的转换(format string<--->timestamp),不能直接转换,得通过格式时间间接转换

#format string--->struct_time--->timestamp
struct_time=time.strptime(‘2020-11-11 11:11:11‘,‘%Y-%m-%d %H:%M:%S‘)
timestemp=(time.mktime(sturct_time))
print(timestemp)
# format string<---struct_time<---timestamp
res=time.strftime(‘%Y-%m-%d %X‘,time.localtime(timestemp))
print(res)
# 了解知识
import time
print(time.asctime())  #Mon Mar 30 21:50:44 2020

import datetime
print(datetime.datetime.now())
print(datetime.datetime.utcnow())
print(datetime.datetime.fromtimestamp(333333))

二、random随机模块

基本用法汇总:

import random

print(random.random()) #(0,1)----float    大于0且小于1之间的小数
print(random.randint(1, 3))  # [1,3]    大于等于1且小于等于3之间的整数

print(random.randrange(1, 3))  # [1,3)    大于等于1且小于3之间的整数

print(random.choice([111, ‘aaa‘, [4, 5]]))  # 1或者23或者[4,5]

print(random.sample([111, ‘aaa‘, ‘ccc‘,‘ddd‘],2))  # 列表元素任意2个组合

print(random.uniform(1, 3))  # 大于1小于3的小数,如1.927109612082716

random模块的应用案例

生成随机验证码:

思路:

res=‘‘
for i in range(6):
    从26大写字母中随机取出一个=chr(random.randint(65,90))
    从10个数字中随机取出一个=str(random.randint(0,9))

    随机字符=random.choice([从26大写字母中随机取出一个,从10个数字中随机取出一个])
    res+=随机字符

代码实现:

import random
def make_num(size):
    str1=‘‘
    res1=random.randint(65,90)
    res2=random.randint(1,9)
    for i in range(size):
        str1+=random.choice([chr(res1),str(res2)])
    return str1

print(make_num(11))

三、os模块

1、获取某一个文件夹下所有的子文件以及子文件夹的名字

import os
res=os.listdir(‘文件夹路径‘)
print(res)

2、每个文件都有size大小的属性,可以通过os模块中的方法直接获得

size=os.path.getsize(r‘C:\Users\asus\PycharmProjects\正课\day22‘)
print(size)

3、永久的删除一个文件

os.remove(r‘C:\Users\asus\PycharmProjects\正课\day22\永久删除.py‘)

4、 重命名

os.rename(r‘C:\Users\asus\PycharmProjects\正课\day22\改吧改吧.txt‘,
          r‘C:\Users\asus\PycharmProjects\正课\day22\改了改了.txt‘)

5、将文件路径加到电脑的环境变量中去,在任何文件或程序都能查看到

os.environ[‘aaaaaaaaaa‘]=‘111‘
print(os.environ)

6、获得文件所在的文件夹,父级文件路径

print(os.path.dirname(r‘C:\Users\asus\PycharmProjects\正课\day22‘))
print(os.path.dirname())

7、获得文件路径最底层的文件

print(os.path.basename(r‘C:\Users\asus\PycharmProjects\正课\day22‘))  #day22

8、判断文件路径所指的是不是文件,是文件返回True,是文件夹返回False

print(os.path.isfile(r‘C:\Users\asus\PycharmProjects\正课‘))  #False
print(os.path.isfile(r‘C:\Users\asus\PycharmProjects\正课\a.py‘)  #True

9、判断文件路径所指的是不是文件夹,是文件夹返回True,是文件返回False

print(os.path.isdir(r‘C:\Users\asus\PycharmProjects\正课‘))  #True
print(os.path.isdir(r‘C:\Users\asus\PycharmProjects\正课\a.py‘‘))  #False

10、把所给的字符串拼接成文件路径

print(os.path.join(‘a‘,‘b‘,‘c‘,‘d‘))  #a\b\c\d

11、获得当前执行文件的父级文件夹

方式1:

BASE_DIR=os.path.dirname(__file__)
print(BASE_DIR)  #E:\老男孩\正课\上课笔记

方式2:

BASE_DIR=os.path.normpath(os.path.join(
    __file__,
    ‘..‘,
    ‘..‘
))
print(BASE_DIR)  #E:\老男孩\正课\上课笔记

推荐使用第一种方式

方式3:

在python3.5之后,推出了一个新的模块pathlib

from pathlib import Path

res = Path(__file__).parent.parent
print(res)  #E:\老男孩\正课\上课笔记

四、sys 模块

基本使用,查看执行文件的环境变量,得到的是一个列表,可以添加路径到环境变量中去,只是临时添加,文件运行结束就回收掉

import sys

print(sys.path)
sys.path.append(‘a/b.txt‘)
print(sys.path)

1、sys.argv获得解释器后的参数

在cmd终端复制文件

import sys
import os
# src_file=input(‘源文件路径: ‘).strip()
# dst_file=input(‘目标文件路径: ‘).strip()
src_file=sys.argv[1]
dst_file=sys.argv[2]
if os.path.isfile(src_file):
    with open(f‘{src_file}‘,mode=‘rb‘) as read_f,             open(f‘{dst_file}‘, mode=‘wb‘) as write_f:
        for line in read_f:
            write_f.write(line)
#python3 run.py src_file dst_file  

五、打印进度条

def progress(percent):
    if percent > 1:
        percent = 1
    res = int(50 * percent) * ‘#‘
    print(‘\r[%-50s] %d%%‘ % (res, int(100 * percent)), end=‘‘)

recv_size=0
total_size=1025

while recv_size < total_size:
    time.sleep(0.01) # 下载了1024个字节的数据

    recv_size+=1024 # recv_size=2048

    # 打印进度条
    # print(recv_size)
    percent = recv_size / total_size  # 1024 / 333333
    # progress(percent)
    res = int(50 * percent) * ‘#‘
    print(‘\r[%-50s] %d%%‘ % (res, int(100 * percent)), end=‘‘)

time模块、random随机模块、os模块、进度条打印

标签:temp   实现   大于等于   cmd   部分   文件夹路径   使用   os模块   env   

原文地址:https://www.cnblogs.com/zhangtieshan/p/12609784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!