os标准库

os模块提供了多个访问操作系统服务的功能,

1.os模块中文件的操作

os模块中文件管理常用方法
*获取当前所在位置的绝对路径

print(os.getcwd())

这里写图片描述
*列出指定目录下的内容

pprint.pprint(os.listdir('/var/log'))

这里写图片描述
对文件和目录的操作

os.mknod('/tmp/westos')  #创建空文件
os.remove('/tmp/westos')  #删除文件
os.mkdir('/tmp/westosdir') #创建一个目录
os.makedirs('/tmp/ok/westosdir') #递归创建目录
os.removedirs('/tmp/ok/westosdir')#删除目录
print(os.path.isfile("/etc/passwd"))#判断是否是一个文件
print(os.path.isabs("~/passwd"))#判断是否是绝对路径
#判断文件或目录是否存在
print(os.path.exists('/etc/passwds'))
print(os.path.exists('/mnt'))

对文件名进行操作

分离底层文件或目录名
print(os.path.split('/etc/passwd/hh'))

这里写图片描述
显示当前操作系统的分隔符

print(os.path.sep) #\

获取文件名

print(os.path.basename('/hello/hello.py'))

获取目录名

print(os.path.dirname('/hello/hello.py'))

这里写图片描述
将文件名后缀和基本文件名分离

print(os.path.splitext("/hello/hello.py"))

这里写图片描述
移动文件也可以更改文件名称相当于linux中的mv

os.rename('/tmp/passwdok', '/mnt/passwdok')
os模块的应用(修改文件后缀)
def modify_suffix(dirname, old_suffix, new_suffix):
    if '.' not in old_suffix:
        old_suffix = "." + old_suffix

    if '.' not in new_suffix:
        new_suffix = '.' + new_suffix

    # 1. 判断目录是否存在
    if os.path.exists(dirname):
        # 2. 找出所有以.jpg结尾的文件;  # hello1.jpg   ====> hello1.png
        jpgnames = [filename for filename in os.listdir(dirname) if filename.endswith(old_suffix)]
        # 3. 所有以.jpg结尾的文件,去掉后缀名
        base_names = [os.path.splitext(filename)[0] for filename in jpgnames]
        for filename in base_names:
            dirname = os.path.abspath(dirname) + os.path.sep
            old_name = dirname + filename + old_suffix
            new_name = dirname + filename + new_suffix
            # 重命名时一定要用绝对路径;
            os.rename(old_name, new_name)
            print("%s重命名为%s成功!" % (old_name, new_name))
    else:
        print("%s目录不存在" % (dirname))

2.补充的其他常用函数

  • environ 对环境变量进行映射
print(os.environ['PYTHONPATH'])  #访问当前所在路径的环境变量
print(os.environ['HOSTNAME'])  #访问主机名的环境变量

这里写图片描述

  • 在子shell中执行操作系统命令
os.system('ls')   #相当于在终端执行ls命令

这里写图片描述

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/80324958