python大佬的养成计划----os,datetime,time模块补充

码林露台
• 阅读 2531

os模块

os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不了os模块

常用os命令

os.name

name顾名思义就是'名字',这里的名字是指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows 返回 'nt'; Linux 返回'posix'。注意该命令不带括号。

os.getcwd()

全称应该是'get current work directory',获取当前工作的目录,如:返回结果为:''E:\python资料\python-teavh\day17''。注意该命令带括号,除了第一个命令不带括号之外,以下命令基本都带括号。

os.listdir(path)

列出path目录下所有的文件和目录名。以列表的形式全部列举出来,其中没有区分目录和文件。

>>import os
>>os.listdir()
['.idea', '01_os模块补充.py', '02_time模块详解.py', '03_datetime模块详解.py', '04_应用案例_系统监控.py', '05_namedtupled新型数据类型.py', '06_python与Excel.py', '07_excel需求.py', '08_今日作业_批量更新商品价格.py', '09_json模块.py', '10_获取IP对应的地理位置.py', 'Book1.xlsx', 'date.txt', 'Excel应用参考', 'json.txt', 'produceSales.xlsx']

os.path命令

  • os.path.isfile(path)——判断指定对象是否为文件。是返回True,否则False
  • os.path.isdir(path)——判断指定对象是否为目录。是True,否则False
  • os.path.exists(path)——检验指定的对象是否存在。是True,否则False
  • os.path.split(path)——返回路径的目录和文件名,即将目录和文件名分开,而不是一个整体。此处只是把前后两部分分开而已。就是找最后一个'/'。
  • os.path.abspath()——获得绝对路径
  • os.path.basename(path)——返回文件名

os模块示例

查看文件修改日期

#查看D:/python_need/data文件的修改日期
#并保存到当前目录下的'date.txt'文件中
import os
import time
import codecs
filename = 'D:\\python_need\\data.txt'
ctime = os.path.getctime(filename)  #输出时间戳:1536580746.5799537
tuple_time = time.localtime(ctime)  #将时间戳变成元组时间,time.struct_time(tm_year=2018, tm_mon=9, tm_mday=10, tm_hour=19, tm_min=59, tm_sec=6, tm_wday=0, tm_yday=253, tm_isdst=0)

year = tuple_time.tm_year
month = tuple_time.tm_mon
day = tuple_time.tm_mday

with codecs.open('date.txt','w','utf-8') as f:  #打开方式一定要使用codecs.open(),否则中文字符会乱码
    f.write("%s的修改日期是%s年%s月%s日" %(filename,year,month,day))

python大佬的养成计划----os,datetime,time模块补充

time模块

在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。
UTC(Coordinated Universal Time)即格林威治天文时间,为世界标准时间。中国北京为UTC+8。
DST(Daylight Saving Time)即夏令时。

时间格式

时间戳(timestamp)的方式:通常来说,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。

>>import time
>>time.time()
1536645999.1539526

元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。
元组时间元素如下:
python大佬的养成计划----os,datetime,time模块补充

>>import time
>>time.localtime()
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=11, tm_hour=14, tm_min=7, tm_sec=31, tm_wday=1, tm_yday=254, tm_isdst=0)

字符串时间

>>import time
>>time.ctime
'Tue Sep 11 14:04:52 2018'

时间格式的相互转换

python大佬的养成计划----os,datetime,time模块补充

import time
str_time = time.ctime()#Tue Sep 11 14:10:43 2018
tuple_time = time.localtime()#time.struct_time(tm_year=2018, tm_mon=9, tm_mday=11, tm_hour=14, tm_min=11, tm_sec=27, tm_wday=1, tm_yday=254, tm_isdst=0)
timestamp = time.time()#1536646330.1479473

#把元组时间转换成时间戳
print(time.mktime(tuple_time))

#把元组时间转换成字符串时间
# strftime(format[, tuple]) -> string
print(time.strftime('%Y-%m-%d-%H-%M-%S'))#指定格式

#把字符串时间转换成元组时间
print(time.strptime('2018-9-10','%Y-%m-%d'))#指定格式

python大佬的养成计划----os,datetime,time模块补充

datetime模块

time模块主要用于时间访问和转换,这个模块提供了各种与时间相关的函数。但不是所有方法在任意平台中有效。
datetime模块提供了处理日期和时间的类,既有简单的方式,又有复杂的方式。它虽然支持日期和时间算法,但其实现的重点是为输出格式化和操作提供高效的属性提取功能。
datetime模块中定义的类
python大佬的养成计划----os,datetime,time模块补充

from datetime import time
from datetime import datetime
from datetime import timedelta
today_time = datetime.today() #获取当前本区时间,并以字符串格式显示2018-09-11 15:04:25.317120
now_time = datetime.now()  #返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上
delta = timedelta(days=3)   #增减或减少一个delta
print(now_time-delta)   #返回三天前的时间,2018-09-08 15:07:11.904546

python大佬的养成计划----os,datetime,time模块补充

综合应用

实现对系统的监控

#   1. 获取当前主机信息, 包含操作系统名, 主机名, 内核版本, 硬件架构等
#   2. 获取开机时间和开机时长
#   3. 获取当前登陆用户

#win下没有os.uname()用法
#解决方案,使用platform.uname()
import platform
import time

import psutil
import datetime

info =platform.uname()  #uname_result(system='Windows', node='DESKTOP-EN0LQJH', release='10', version='10.0.16299', machine='AMD64', processor='Intel64 Family 6 Model 142 Stepping 10, GenuineIntel')

print("1. 主机信息".center(50, '*'))
print("""
    操作系统: %s, 
    主机名: %s, 
    内核版本: %s, 
    硬件架构: %s
""" %(info.system, info.node, info.release, info.machine))

print("2. 开机时间".center(50, '*'))
boot_time = psutil.boot_time()  #时间戳,1536040894.0
#datetime对象,datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]
#fromtimestamp,根据指定的时间戳创建一个datetime对象
boot_time = datetime.datetime.fromtimestamp(boot_time)  #2018-09-04 14:01:34
now_time = datetime.datetime.now()  #同一类型
delta_time = now_time-boot_time #获取时间差
delta_time = str(delta_time).split('.')[0]
print("""
    开机时间: %s
    当前时间: %s
    开机时长: %s
""" %(boot_time,now_time, delta_time))

print("3. 当前登陆用户".center(50, '*'))

# 获取当前登陆用户的详细信息, 需求是获取用户名和登陆主机
users = psutil.users()  #[suser(name='Sheen_Star', terminal=None, host='0.4.0.0', started=1536585663.0, pid=None)]
users = {"%s %s" %(user.name, user.host) for user in users} #集合实现数据去重
for user in users:
    print("\t当前登录用户有: %s" %(user))

python大佬的养成计划----os,datetime,time模块补充

点赞
收藏
评论区
推荐文章
半臻 半臻
4年前
Python基础4——模块与包
12模块与包模块通俗地理解为.py文件,里面定义了变量、函数和类。需要的时候就可以导入这些模块。执行步骤1.在python模块加载路径中查找相应的模块文件2.将模块文件编译成中间代码3.执行模块文件中的代码12.1模块分类1.内置模块,也叫标准库,比如说random,time,大概有200多个2.第三方模块,也称为第三方库,使用pipins
Wesley13 Wesley13
4年前
java获取操作系统的MAC地址和硬盘序列号
1.判断操作系统是Windows还是Linux1privatestaticBooleanisLinux(){2StringosSystem.getProperty("os.name");3log.info("os.name:{}",os);4
Souleigh ✨ Souleigh ✨
5年前
python时间模块的使用 white_study
前言:在开发中经常会与时间打交道,如:获取事件戳,时间戳的格式化等,这里简要记录一下python操作时间的方法。python中常见的处理时间的模块:time:处理时间的模块,如获取时间戳,格式化日期等datetime:date和time的结合体,处理日期和时间calendar:日历相关的模块,如:处理年历/月历tim
Stella981 Stella981
4年前
Scapy 从入门到放弃
0x00前言最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy。scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手。0x01安装因为2020年python官方便不再支持python2,所以使用python3安装。!(https://oscimg.oschina.net/os
Stella981 Stella981
4年前
Python的GUI编程(TK)
TK在大多数Unix平台、Windows平台和Macintosh系统都是预装好的,TKinter模块是TkGUI套件的标准Python接口。可实现Python的GUI编程。Tkinter模块("Tk接口")是python的标准TkGUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Maci
Stella981 Stella981
4年前
Python之OS模块函数
Python中的os模块提供了操作系统相关功能的函数,可以更加方便的在python脚本中对linux的文件目录的处理和shell的应用。os.system("bash")运行shell命令,直接显示应用ls命令查看当前目录下的文件importosprint(os.system('ls'))
Stella981 Stella981
4年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
4年前
Python常用模块os & sys & shutil模块
OS模块importos'''os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")改变当前脚本工作目录;相当于shell下cdos.curdir返回当前目录:('.')os.pardir获取
Stella981 Stella981
4年前
Python 学习之路(四)
Python学习之路(四)以下所用的是Python3.6一、时间模块(time模块)实例环境为Ubuntu14.04python3.6导入time模块。注:可以在命令行输入:help(time.方法名字)查看帮助文档,例:help(time.localtime)
Stella981 Stella981
4年前
Apache mpm模式优化
Apache采用的MPM(MultiProcessingModules,多道处理模块),管理网络连接处理请求一、简介针对操作系统的处理模块mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker其中Linux系统使用 
Wesley13 Wesley13
4年前
2.4、Python文件对象及os、os.path和pickle模块(0530)
文件系统和文件1、文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构即在磁盘上组织文件的方法;文件系统模块:os2、计算机文件(称文件、电脑档案、档案),是存储在某种长期储存设备或临时存储设备中的一段数据流,并且归属于计算机文件系统管理之下;3、概括来讲:文件是计算机中由OS管理的具有名字的存储区域;
码林露台
码林露台
Lv1
山风吹空林,飒飒如有人。
文章
2
粉丝
0
获赞
0