Python中各种模块(datetime.datetime,os操作相关,等)后续-----19

datetime.datetime模块

  • 提供比较好用的时间而已
  • 类定义

    • datetime相当于date和time结合起来。

                    datetime.datetime (year, month, day[ , hour
                    [ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
      
        属性                            值
        tm_year(年)                  比如2011 
        tm_mon(月)                   1 - 12
        tm_mday(日)                  1 - 31
        tm_hour(时)                  0 - 23
        tm_min(分)                   0 - 59
        tm_sec(秒)                   0 - 61
        tm_wday(weekday)             0 - 6(0表示周日)
        tm_yday(一年中的第几天)        1 - 366
        tm_isdst(是否是夏令时)        默认为-1
      
  • 类方法
    • 静态方法和字段
        datetime.today():返回一个表示当前本地时间的datetime对象;
        datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
        datetime.utcnow():返回一个当前utc时间的datetime对象;#格林威治时间
        datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
        datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
        datetime.combine(date, time):根据date和time,创建一个datetime对象;
        datetime.strptime(date_string, format):将格式字符串转换为datetime对象;
      
    • 方法和属性
        dt=datetime.now()#datetime对象
        dt.year、month、day、hour、minute、second、microsecond、tzinfo:
        dt.date():获取date对象;
        dt.time():获取time对象;
        dt. replace ([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo]]]]]]]]):
        dt. timetuple ()
        dt. utctimetuple ()
        dt. toordinal ()
        dt. weekday ()
        dt. isocalendar ()
        dt. isoformat ([ sep] )
        dt. ctime ():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));
        dt. strftime (format)
      

In [2]:

 

from datetime import datetime as dt
print(dt.now())
2018-12-27 01:59:54.223276

os-操作系统相关

  • 跟操作系统相关,主要文件操作
  • 三个模块
    • os ,操作系统目录相关
    • os.path ,系统路径相关操作
    • shutil,高级文件操作,目录树的操作,文件赋值,删除,移动
  • 路径:
    • 绝对路径:总是从根目录上开始
    • 相对路径:基本以当前环境开始的一个相对地方

os模块

  • getcwd()获取当前的工作目录
    • 格式:os.getcwd()
    • 返回值:当前工作目录的字符串
    • 当前工作目录就是程序在进行文件相关操作,默认查找文件目录
  • chdir()改变当前工作目录
    • change directory
    • 格式:os.chdir(路径)
    • 返回值:无
  • listdir()获取一个目录中所有子目录和文件的名称列表
    • 格式:oslistdir(路径)
    • 返回值:所有子目录和文件名称的列表
  • makedirs()递归创建文件夹
    • 格式:os.makedirs(递归路径)
    • 返回值: 无
  • system()运行系统shell命令
    • 格式:os.system(系统命令)
    • 返回值:打开一个shell或者终端界面
    • 一般推荐使用subprocess代替
  • getenv()获取指定的系统环境变量
    • 格式:os.getenv('环境变量名')
    • 返回值:指定环境变量名对应的值
  • putenv()
  • exit()退出当前程序
    • 格式exit()

In [3]:

 

import os
mydir = os.getcwd()
print(mydir)
/home/tlxy/桌面/biji

In [5]:

 

#listdir()
ld = os.listdir()
print(ld)
['17.ipynb', '第五日.ipynb', '第七日.ipynb', 'VMware Tools', '第四日.ipynb', '第十三日.ipynb', '第十四日.ipynb', '第十二日.ipynb', '第十日.ipynb', '18.ipynb', '第九日.ipynb', '第十六日.ipynb', '第十一日.ipynb', '.ipynb_checkpoints', '第六日.ipynb', '第八日.ipynb', '第十五日.ipynb', '第三日.ipynb', '第二日.ipynb', '第一日.ipynb']

In [7]:

 

#getenv()实例
rst = os.getenv('PATH')
print(rst)
/var/sw/anaconda3/bin:/home/tlxy/bin:/home/tlxy/.local/bin:/var/sw/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

值部分

  • os.curdir:curretn dir,当前目录
  • os.pardir:parent dir,父目录
  • os.sep:当前系统的路径分隔符
  • os.linesep:当前系统的换行符
  • os.name:当前系统名称
    • windows: nt
    • mac,unix,linux: posix

In [9]:

 

print(os.pardir)
print(os.curdir)
print(os.sep)
print(os.linesep)
print(os.name)
..
.
/


posix

os.path 模块,跟路径相关的模块

  • abspath () 将路径转化为绝对路径
    • 格式:os.path.abspath('路径')
    • 返回值:路径的绝对路径形式
  • basename() 获取路径中的文件名部分
    • 格式:os.path.basename('路径')
    • 返回值:文件名字符串
  • join()将多个路径拼合成一个路径
    • 格式:os.path.join('路径1‘,’路径2‘,...)
    • 返回值: 组合之后的新路径字符串
  • split() 将路径切割成文件夹部分和当前文件部分
    • 格式:os.path.split('路径')
    • 返回值:路径和文件名组成的元组
  • isdir() 检测是否是目录
    • 格式:os.path.isdir('路径')
    • 返回值: bool
  • exists()检测文件或者目录是否存在
    • 格式:os.path.exists(‘路径’)
    • 返回值:bool

In [11]:

 

import os.path as p
#abspath () 实例
abspath = p.abspath('.')
print(abspath)
/home/tlxy/桌面/biji

In [12]:

 

#basename()实例
bn = p.basename('/home/tlxy')
print(bn)
tlxy

In [14]:

 

 
#isdir()实例
res = p.isdir('/home/tlxy/桌面')
print(res)   
True

In [16]:

 

#exists()实例
print(p.exists('/home/tlxy/桌面'))
True

shutil模块

  • copy()复制文件
    • 格式:shutil.copy(‘来源路径’,‘目标路径’)
    • 返回值:返回目标路径
    • 拷贝的同时可以给文件重命名
  • copy2()复制文件,保留元数据(文件信息)
    • 格式:shutil.copy2(‘来源路径’,‘目标路径’)
    • 返回值:返回目标路径
    • 注意:copy与copy2的唯一区别在于copy2复制文件时尽量保留元数据
  • copyfile()将一个文件的内容复制到另外一个文件当中
    • 格式:shutil.copyfile('源路径',’目标路径‘)
    • 返回值:无
  • move()移动文件或文件夹
    • 格式:shutil.move(’源路径‘,’目标路径‘)
    • 返回值:目标路径

归档和压缩

  • 归档:把多个文件或者文件夹合并到一个文件中
  • 压缩:用算法,把多个文件或者文件夹无损或者有损合并到一个文件中
  • make_archive()归档操作
    • 格式:shutil.make_archive('归档之后的目录和文件名',’后缀‘,’需要归档的文件夹‘)
    • 返回值:归档之后的地址
  • unpack_archive()解包操作
    • 格式:shutil.unpack_archive(’归档文件地址‘,’‘解包之后的地址)
    • 返回值:解包之后的地址

zip-压缩包

  • 模块名称zipfile
    • 格式:zipfile.ZipFile(file[,mode[,compression[,allowZip64]]])
    • 创建一个ZipFile对象,表示一个zip文件。
    • 参数file表示文件的路径或者类文件对象(file-like object);
  • ZipFile.extracyall([path[,members[,pwd]]])
    • 解压zip文档中的所有文件到当前目录

random

  • 随机数
  • 所有随机模块都是伪随机
  • random()获取 0-1之间的随机小数
    • 格式:random.random()
    • 返回值:0-1之间的随机小数
  • choice()随机返回序列中的某个值
    • 格式:random.choice()
  • randint()随机返回整数
  • uniform()随机返回浮点数
  • random.randrange(1,100,2) 生成从1到100的间隔为2的随机整数
  • a=[1,3,5,6,7] random.shuffle(a) 将序列a中的元素顺序打乱

In [89]:

 

 
import random
print( random.randint(1,10) )        # 产生 1 到 10 的一个整数型随机数  
print( random.random() )             # 产生 0 到 1 之间的随机浮点数
print( random.uniform(1.1,5.4) )     # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print( random.choice('tomorrow') )   # 从序列中随机选取一个元素
print( random.randrange(1,100,2) )   # 生成从1到100的间隔为2的随机整数
a=[1,3,5,6,7]                # 将序列a中的元素顺序打乱
random.shuffle(a)
print(a)
4
0.5640038753183663
2.83286180629042
o
21
[5, 6, 3, 7, 1]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

What’smean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值