Python os模块与sys模块

1、os模块

1.1 os模块是与操作系统交互的一个接口

os模块是通过python解释器来对操作系统请求命令,请求操作系统执行相应的功能、操作。
例如os.getcwd(),拿到当前python脚本所在的工作目录的绝对路径
相关的方法还有:
os.chdir(“dirname”) : 改变当前脚本工作目录;相当于shell下cd
os.curdir : 返回当前目录: (’.’)
os.pardir : 获取当前目录的父目录字符串名:(’…’)
os.makedirs(‘dirname1/dirname2’) : 可递归生成多层目录
os.removedirs(‘dirname1’) : 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(‘dirname’) : 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname’) : 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(‘dirname’) : 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() : 删除一个文件
os.rename(“oldname”, “newname”) : 重命名文件/目录
os.stat(‘path/filename’) : 获取文件/目录信息
os.sep : 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
os.linesep : 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep : 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name : 输出字符串指示当前使用平台。win->‘nt’; Linux->‘posix’
os.system(“bash command”) : 运行shell命令,直接显示
os.environ : 获取系统环境变量,这个命令拿到的环境变量就包括我们平常打开此电脑,右键属性\高级系统设置\环境变量 里的那些环境变量
os.path.abspath(path) : 返回path规范化的绝对路径
os.path.split(path) : 将path分割成目录和文件名二元组返回,第一个元素是目录路径,第二个元素是文件名,如果path以/或者\\结尾,则第一个元素就是path除去结尾的/或者\\, 第二个元素为’’
例如:

print(os.path.split('a\\b\\c\\d.txt'))
print(os.path.split('a\\b\\c\\d.txt\\'))

结果为:
('a\\b\\c', 'd.txt')
('a\\b\\c\\d.txt', '')

os.path.dirname(path) : 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) : 返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素,一般用来获取给出路径的文件名,例如os.path.basename(‘a\\b\\c\\d.txt’),返回的就是’d.txt’
os.path.exists(path) : 如果path存在,返回True;如果path不存在,返回False,用于判断路径是否存在,不存在即可以创建文件\文件夹
os.path.isabs(path) : 如果path是绝对路径,返回True
os.path.isfile(path) : 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) : 如果path是一个存在的目录,则返回True。否则返回False,和os.path.isfile一样,一般用于判断文件夹\文件是否存在,以此来创建文件夹\文件
os.path.join(path1[, path2[, …]]) : 将多个路径组合后返回,参数要求传入字符串\字节\路径,并且第一个绝对路径之前的参数将被忽略,例如os.path.join(‘a’, ‘b’, ‘c.txt’),Windows下返回的是’a\\b\\c.txt’
os.path.getatime(path) : 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) : 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) : 返回path的大小,可以用来统计文件\文件夹的大小
os.path.normpath(path) :返回标准化的路径,在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为反斜杠。

1.2 应用:寻找所给路径的上级目录

1.2.1 通过os.path.dirname方法(比较通用,兼容python2和python3)
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

结果输出:
D:\WorkSpace\Pycharm WorkSpace\python新征程\常用模块\os模块\os模块使用.py
D:\WorkSpace\Pycharm WorkSpace\python新征程\常用模块
1.2.2 通过os.path.join、os.path.normpath以及os.path.pardir
print(os.path.abspath(__file__))
print(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir, os.pardir)))
# 这一步相当于os.normpath(__file__\..\..)

结果输出:
D:\WorkSpace\Pycharm WorkSpace\python新征程\常用模块\os模块\os模块使用.py
D:\WorkSpace\Pycharm WorkSpace\python新征程\常用模块
1.2.3 通过libpath下的Path进行返回(最简单直观)
from pathlib import Path
print(Path(__file__))
print(Path(__file__).parent.parent)  # 直接通过parent访问上级文件夹的名字

结果输出:
D:\WorkSpace\Pycharm WorkSpace\python新征程\常用模块\os模块\os模块使用.py
D:\WorkSpace\Pycharm WorkSpace\python新征程\常用模块

2 sys模块

sys模块同样也是对操作系统发起请求,主要的一些方法如下:
1 sys.argv 命令行参数List,第一个元素是程序本身路径,可以在命令行通过python xxx.py来为程序传递参数
2 sys.exit(n) 退出程序,正常退出时exit(0)
3 sys.version 获取Python解释程序的版本信息
4 sys.maxint 最大的Int值
5 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值,最主要的作用是将导入模块路径添加到PYTHONPATH环境变量当中,这样使用者在使用包的时候便可以直接import/from … import使用外部包
6 sys.platform 返回操作系统平台名称

2.1 应用sys.argv 实现文件的复制

import sys

args = sys.argv

src_file = args[1]
dis_file = args[2]
with open(src_file, 'rt', encoding='utf-8') as f1, \
    open(dis_file, 'wt', encoding='utf-8') as f2:
    for line in f1:
        f2.write(line)
# 在cmd命令行调用python xxx.py a.txt b.txt, sys.argv接受到参数后
# args = ['xxx.py', 'a.txt', 'b.txt']

执行结果:
sys.argv 实现文件的复制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值