python3 OS模块和SYS模块

0x00 快速入门

(1)内置模块一览表 描述:模块是一个包含所有您定义的函数和变量的文件其后缀名为.py,模块可以被失败引入的以使用该模块中的函数等功能。

#>>>dir(random)  #查看与使用模块里的函数,前提必须引入模块,高阶用法 import 引入模块 as 模块别名;
#>>>help(random) #模块帮助

import os        #操作系统模块
import sys       #系统模块
import math      #数学计算模块 
import random    #随机数生成模块 
import pickle    #数据序列和反序列化模块
import time      #时间解析模块提供各种时间相关的功能 (time,datetime 以及 calendar)
import dlifflib  #文件对比模块 (Python自动化运维处详解)
import filecmp   #文件目录差异对比方法 (同时)
import pprint    #格式化美观输出
import requests   #Requests 发送网络请求非常简单
import smtplib   #邮件发信模块
import email     #邮件模板包
import uuid      #UUID模块
0x01 模块详细
os模块

描述:os模块关于文件/目录常用的函数使用方法:

getcwd() 返回当前工作目录

chdir(path) 改变工作目录

listdir(path=’.’) 列举指定目录中的文件名(’.’表示当前目录,’..’表示上一级目录)

mkdir(path) 创建单层目录,如该目录已存在抛出异常

makedirs(path) 递归创建多层目录,如该目录已存在抛出异常,注意:’E:\a\b’和’E:\a\c’并不会冲突

remove(path) 删除文件 rmdir(path) 删除单层目录,如该目录非空则抛出异常

removedirs(path) 递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常

rename(old, new) 将文件old重命名为new

system(command) 运行系统的shell命令,显示执行命令后的返回,与返回执行是否成功0/1

walk(top) 遍历top路径以下所有的子目录,返回一个三元组:(路径, [包含目录], [包含文件])

以下是支持路径操作中常用到的一些定义,支持所有平台(相当于常量)

os.curdir  指代当前目录('.')
os.pardir  指代上一级目录('..')
os.sep  输出操作系统特定的路径分隔符(Win下为'\\',Linux下为'/')
os.linesep  当前平台使用的行终止符(Win下为'\r\n',Linux下为'\n')
os.name  指代当前使用的操作系统(包括:'posix',  'nt', 'mac', 'os2', 'ce', 'java')
os.popen(命令) 执行指定的系统可执行脚本的命令

os模块案例1:

#!/usr/bin/python3
#功能:OS模块的使用

import os
print("当前路径:",os.getcwd())
os.chdir('C:\\Users\\Administrator\\Desktop\\Python')  #修改路径
print("修改后的路径:",os.getcwd())
os.mkdir('.\\test')         #创建目录
os.makedirs('.\\web\\a\\b')  # 目录已存在时,无法创建该目录以及多级目录
#os.remove('.\\demo2-10.txt')    #删除文件
os.rmdir('.\\test')              #移除单个目录
os.removedirs('.\\web\\a\\b')    #移除多个目录
print(os.system('DATE /T'))      #执行成功返回0,否则为1
print(list(os.walk(os.curdir)))  #遍历当前目录  os.pardir()
print('指定分隔符:',os.sep)
print('当前平台的中止符号: %s' %os.linesep)  #\r\n
print('当前使用的操作吸引:',os.name)
OS模块
OS模块

OS模块

os模块案例2: 描述:采用os.popen来替代os.system来执行系统命令;

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#获取本机的开放端口Linux/Windwos
command = "netstat -an|findstr TCP"
command = "netstat -tnlp|egrep -i tcp|awk {'print $4'}|awk -F':' '{print $NF}'|sort"
lines = os.popen(command).readlines()  #关键点
for line in lines:
    port = line.split()
    port_list.append(port[0])

command = "netstat -an|findstr TCP" 
lines = os.popen(command).readlines()  #关键点
for line in lines:
    port=line.split()
    port=port[1].split(':')
    print(port[1])

# runfile('E:/githubProject/Study-Promgram/Python3/Day9/os.popen.py', wdir='E:/githubProject/Study-Promgram/Python3/Day9')
# 135
# 443
# 445
# 902


#示例2.获取本机的ip地址信息
for k in os.popen("ip addr").readlines():
    print(k)
# 15: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 group default qlen 1
#     link/ether 98:90:96:e1:91:d6
#     inet 192.168.1.88/24 brd 10.20.172.255 scope global dynamic
#     valid_lft 691196sec preferred_lft 691196sec
#     inet6 fe80::d97d:fe6c:10bf:4244/64 scope link dynamic
#     valid_lft forever preferred_lft forever
os.path 类模块

描述:os.path模块路径常用的函数使用方法

basename(path) 去掉目录路径,单独返回文件名

dirname(path) 去掉文件名,单独返回目录路径

join(path1[, path2[, …]]) 将path1, path2各部分组合成一个路径名

split(path) 分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在

splitext(path) 分离文件名与扩展名,返回(f_name, f_extension)元组

getsize(file) 返回指定文件的尺寸,单位是字节

getatime(file) 返回指定文件最近的访问时间(浮点型秒数,用time模块的gmtime()或localtime()函数换算)

getctime(file) 返回指定文件的创建时间(浮点型秒数,同上)

getmtime(file) 返回指定文件最新的修改时间(浮点型秒数,同上)

以下为函数返回 True 或 False

exists(path) 判断指定路径(目录或文件)是否存在

isabs(path) 判断指定路径是否为绝对路径

isdir(path) 判断指定路径是否存在且是一个目录

isfile(path) 判断指定路径是否存在且是一个文件

islink(path) 判断指定路径是否存在且是一个符号链接

ismount(path) 判断指定路径是否存在且是一个挂载点

samefile(path1, paht2) 判断path1和path2两个路径是否指向同一个文件

案例:

#!/usr/bin/python3
#功能:OS模块使用

import os

print(os.path.basename('E:\\web\\conf\\test.php'))
print(os.path.dirname('E:\\web\\conf\\test.php'))
print(os.path.join('E:\\','test\\demo.php'))  #注意path1在绝对路径需要加入转义符号
print(os.path.split('E:\\web\\conf\\test.php'))
print(os.path.splitext('E:\\web\\conf\\test.php'))
print(os.path.getsize(os.curdir + '\\python.txt'),'Bytes')
print("建立时间:",os.path.getctime(os.curdir + '\\python.txt'),'ms')
print("修改时间:",os.path.getmtime(os.curdir + '\\python.txt'),'ms')
print("访问时间:",os.path.getatime(os.curdir + '\\python.txt'),'ms')

if os.path.exists('.\\python.txt'):
    print("目录或者文件存在")
else:
    print('目录或者文件不存在')

print("是否为绝对路径:",os.path.isabs('.\\python.txt'))
print("是否是文件:",os.path.isfile('.\\python.txt'),"是否是目录:",os.path.isdir(os.pardir+'\\python'))
print("判断是否是挂载点:",os.path.ismount('D:\\'))
os.path 模块
os.path 模块

os.path 模块

sys 模块

描述:属性与参数一览表 (1) sys.argv CMD列表参数的获取

import sys  #系统模块
sys.setdefaultenconding('utf-8|gb2312') #设置系统默认的编码格式
sys.version_info  #当前Python版本信息
# sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0)
posted @ 2024-04-04 17:39  挖坑达人  阅读(45)  评论(0)    收藏  举报