Python中的常用模块

Python中的常用模块

os模块

调用os(操作系统)模块函数:
调用模块内函数,先要导入,导入模块,要放在文件最前面

import os

# 1.判断操作系统类型
# 根据os.name的值判断是什么系统:
# 值为posix是linux操作系统,值为nt则是windows操作系统
print(os.name)
print('windows' if os.name == 'nt' else 'Linux')    # if条件语句的简写形式

# 2.操作系统详细信息
info = os.uname()
print(info)
print(info.sysname)

# 3.查看系统环境变量 (在shell中使用echo $PATH)
print(os.environ)
# 通过key值查看环境变量对应的value值
print(os.environ.get('PATH'))

# 4.判断是否绝对路径(以根目录/开始,开头,与目录是否真实存在无关)
print(os.path.isabs('/asd/'))
print(os.path.isabs('asd/'))

# 5.生成绝对路径(仅仅是根据传入的参数(字符串)生成代表绝对路径形式的字符串,与系统中是否存在相应的真实文件无关)
# print(os.path.abspath('asd/'))
print(os.path.abspath('.'))   # 生成当前目录的绝对路径
print(os.path.abspath('..'))  # 生成当前目录的上一级目录的绝对路径
print(os.path.join(os.path.abspath('.'),'hello'))   # 生成当前目录的绝对路径 与 hello路径相连接
print(os.path.join(os.path.abspath('..'),'hello'))
print(os.path.join(os.path.abspath('-'),'hello/hello1/hello2'))

# 6.获取目录名和文件名
full_name = 'home/dd/Desktop'
print(os.path.basename(full_name))
print(os.path.dirname(full_name))

# 7.创建目录
os.mkdir('img')   #在当前目录下,创建目录文件img
#os.makedirs('img/dir1/dir2')   #在当前目录下,递归创建目录文件img/dir1/dir2,中间不存在的目录文件如第如dir1,会自动创建
os.rmdir('img')   #删除在当前目录下的目录文件img   注意,该函数无法第归地删除目录文件

# 8.创建文件 删除文件
os.mknod('imgs.txt')   #在当前目录下,创建文件imgs.txt
os.remove('imgs.txt')   #删除在当前目录下的文件imgs.txt

# 9.文件重命名
os.rename('imgs.txt','img.txt')

# 10.判断文件或目录是否存在
print(os.path.exists('test.py'))
print(os.path.exists('test1.py'))

# 11.分离后缀名和文件名
print(os.path.splitext('test.py'))

# 12.将目录名和文件名分离
print(os.path.split('/tmp/hello/test.py'))

13.列出目录下所有文件
print(os.listdir('/'))

14.获得指定文件的时间
os.path.getatime(file)   #输出最近访问时间(最后一次访问时间)
os.path.getctime(file)   #输出文件创建时间
os.path.getmtime(file)   #输出最近修改时间

以上三个函数的返回值均以从1970年到目标时间的秒数,即时间戳
(下面的time时间模块中,会介绍到如何将时间戳转化为我们所熟悉的形式来表示)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

time模块

调用time(时间)模块:

import time

# 1.时间戳
print(time.time())   # 返回当前时间的时间戳(1970纪元后经过的浮点秒数)

# 2.字符串时间
print(time.ctime())    # 返回当前时间的字符串时间

# 3.元组时间
info = time.localtime() # 函数得到的当前时间的元组时间表示(特殊数据结构类型存放表示)赋值给info变量引用
print(info)
info = time.localtime(time.time())  #将当前时间的时间戳表示,转换为元组时间
print(info)
print(info.tm_year)  # 获取info所引用的元组时间中的tm_year的值(感觉像是字典,又像是C语言中的枚举)
print(info.tm_mon)


时间格式转换:

import time
import os

# 把元组时间转换为时间戳
tuple_time = time.localtime()      # 获取当前时间的元组时间
print(tuple_time)
print(time.mktime(tuple_time))   # 将元组时间转换为时间戳

# 把元组时间转化成字符串时间
print(time.strftime('%d-%m',tuple_time))    # 将元组时间转换为不同格式的字符串时间,具体查看函数参数
print(time.strftime('%Y/%m/%d',tuple_time))
print(time.strftime('%T',tuple_time))
print(time.strftime('%F',tuple_time))

# 将时间戳类型的时间转换成字符串时间
pwd_time = os.path.getctime('/etc/passwd')
print('pwd_time',pwd_time)
print(time.ctime(pwd_time))  # 将时间戳转换为字符串时间

# 将时间戳转换为元组
print(time.localtime(pwd_time))

在这里插入图片描述
在这里插入图片描述

datetime

import os
import time
from datetime import date
# import datetime
from datetime import datetime
from datetime import timedelta

print(date.today())   # 输出当前日期
print(datetime.now())   # 输出当前时间

# 输出三天前的时间和三天后的时间
d = date.today()
delta = timedelta(days=3)
print(d + delta)
print(d - delta)

# 计算两个小时前的时间和两个小时后的时间
now_hour = datetime.now()
delta = timedelta(hours=2)
print(now_hour - delta)
print(now_hour + delta)

# 返回两个时间,计算这两个时间之间的时间差
now_time = datetime.now()
print(now_time)
pwd_time = os.path.getmtime('/etc/passwd')   # 获取文件的最近修改时间,这个是以时间戳形式
print(time.ctime(pwd_time))
pwd_time_obj = datetime.fromtimestamp(pwd_time)  # 将获取的时间戳格式,返回一个相同时间的datetime对象
print(pwd_time_obj)
delta = now_time - pwd_time_obj
print(delta)

在这里插入图片描述

difflib

"""
什么是difflib? 用来做什么?
difflib为python的标准库模块,无需安装。
作用时对比文本之间的差异。
并且支持输出可读性比较强的HTML文档,与Linux下的diff 命令相似。
在版本控制方面非常有用。

2. 符号理解
符号    含义
'-'     包含在第一个系列行中,但不包含第二个。
'+'     包含在第二个系列行中,但不包含第一个。
' '     两个系列行一致
'?'     存在增量差异
'^'     存在差异字符

text1 = '''  1. Beautiful is better than ugly.
       2. Explicit is better than implicit.
       3. Simple is better than complex.
       4. Complex is better than complicated.
		'''
text2 = '''  1. Beautiful is better than ugly.
       3.   Simple is better than complex.
       4. Complicated is better than complex.
       5. Flat is better than nested.
     '''
"""
import difflib

text1 = '''  1. Beautiful is better than ugly.
       2. Explicit is better than implicit.
       3. Simple is better than complex.
       4. Complex is better than complicated. '''.splitlines(keepends=True)

text2 = '''  1. Beautiful is better than ugly.
       3.   Simple is better than complex.
       4. Complicated is better than complex.
       5. Flat is better than nested.
     '''.splitlines(keepends=True)

    # Python splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符

"""
splitlines()按照行分割
返回一个包含各行作为元素的列表
参数:
keepends=True 保留换行符
keepends=False 不包含换行符

"""
# 实现类似linux里面的diff命令的功能
# d = difflib.Differ()
#
# print(''.join(list(d.compare(text1,text2))))

d = difflib.HtmlDiff()     # 变量d去引用该方法返回的对象
htmlContent = d.make_file(text1,text2)  # d调用该方法的make_file(text1,text2)
# print(htmlContent)
with open('diff.html','w') as f:    # 将上面生成的html内容写入diff.html文件中
    f.write(htmlContent)


上面的是两个字符串的对比,两个文件之间的对比如下:

import difflib
filename1 = '/tmp/passwd'
filename2 = '/tmp/passwd1'

with open(filename1) as f1,open(filename2) as f2:
    content1 = f1.read().splitlines(keepends=True)
    content2 = f2.read().splitlines(keepends=True)
    
# 将两个文件的内容读入,分别由两个变量去引用,再进行比较

d = difflib.HtmlDiff()
htmlContent = d.make_file(content1,content2)
with open('passwdDiff.html','w') as f:
    f.write(htmlContent)

在这里插入图片描述
在这里插入图片描述

sys

sys.version # python解释器的版本

sys.path  # python的环境变量

具体示例:

import os
import sys

# 获取执行时传入文件内的参数
print(sys.argv)   # 解释器后的均为参数,也即是说,文件名及文件名后的都是参数
print('----------分割线----------')
# 获取脚本传递的第一个参数
print(sys.argv[0])
print('----------分割线----------')
# 获取脚本传递的第二个参数
print(sys.argv[1])
print('----------分割线----------')

print(sys.version)   # python解释器版本信息
print(sys.version[:3])

if sys.version[0] == '2':
    print('running in python2...')
elif sys.version[0] == '3':
    print('running in python3')
print('----------分割线----------')

#返回模块的搜索路径 初始化PYTHON PATH环境变量
print(sys.path)
# 可以实现跨平台
print(sys.platform)
if sys.platform == 'linux':
    os.system('ifconfig')
else:
    os.system('ipconfig')  # windows系统下使用ipconfig命令查询ip地址

该程序在下面的terminal终端窗口中运行

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值