组团学

Python 对linux系统操作

阅读 (190499)

一、os中常用属性和方法

作用:包含了基本的操作系统功能,提供了非常丰富的方法用来处理文件和目录

  • 属性

    名称 说明
    name 操作系统的类型,nt表示windows,posix表示Linux、Unix
    uname 获取操作系统的信息,linux、Unix下使用
    environ 获取系统中的环境变量,environ.get()可以获取环境变量的值
    curdir 返回当前的目录
  • 方法

    名称 说明
    getcwd() 返回当前工作目录的绝对路径
    listdir() 返回指定目录下的所有文件和目录
    mkdir() 创建指定目录,注意目录已经存在时会报错,目录路径中存在不存在的层级时报错
    rmdir() 删除目录,注意目录不存在则报错
    rename() 重命名
    stat() 获取文件属性
    remove() 删除普通文件
    system() 运行shell命令
  • 示例

    import os # 操作系统的类型 # nt windows # posix Linux、Unix print(os.name) # 获取操作系统的信息,linux、Unix下使用 print(os.uname()) # 获取系统中的环境变量 print(os.environ) # 获取指定环境变量的值 print(os.environ.get("PATH")) # 返回当前的目录 print(os.curdir) # 返回当前工作目录的绝对路径 print(os.getcwd()) # 返回指定目录下的所有文件和目录 print(os.listdir(r"C:\Users\sunck\Desktop\code")) # 创建指定目录,注意目录已经存在时会报错,目录路径中存在不存在的层级时报错 os.mkdir(r"C:\Users\sunck\Desktop\file") os.mkdir(r"C:\Users\sunck\Desktop\file\a\b") # 删除目录,注意目录不存在则报错 os.rmdir(r"C:\Users\sunck\Desktop\file") # 重命名 os.rename(r"C:\Users\sunck\Desktop\code\file1.txt", r"C:\Users\sunck\Desktop\code\file2.txt") # 获取文件属性 print(os.stat(r"C:\Users\sunck\Desktop\code\file2.txt")) # 删除普通文件 os.remove(r"C:\Users\sunck\Desktop\code\file2.txt") # 运行shell命令 os.system("notepad") os.system("shutdown -s -t 10") os.system("shutdown -a")

二、os.path中常用方法

操作文件和目的函数一部分在os模块中,还有一部分在os.path中

名称 说明
abspath 返回指定路径的绝对路径
join 拼接路径(不论是否存在)
split 拆分路径(不论是否存在)
splitdrive 以路径第一个’/'为分隔,分隔驱动器名与路径
splitext 获取文件的扩展名(不论是否存在)
basename 获取目录或文件名(不论是否存在)
getsize 获取属性
getctime 获取属性
isdir 判断是否是目录
isfile 判断是否是文件
exists 判断目录和文件是否存在
isabs 判断是否是绝对路径(不论是否存在)
import os # 返回指定路径的绝对路径 print(os.path.abspath(".")) # 拼接路径(不论是否存在) print(os.path.join(r"C:\Users\sunck\Desktop\file", "a.txt")) # 拆分路径(不论是否存在) print(os.path.split(r"C:\Users\sunck\Desktop\file")) print(os.path.split(r"C:\Users\sunck\Desktop\file\sunck.txt")) # 以路径第一个'/'为分隔,分隔驱动器名与路径 print(os.path.splitdrive(r"C:\Users\sunck\Desktop\file")) print(os.path.splitdrive(r"C:\Users\sunck\Desktop\file\sunck.txt")) # 获取文件的扩展名(不论是否存在) print(os.path.splitext(r"C:\Users\sunck\Desktop\file")) print(os.path.splitext(r"C:\Users\sunck\Desktop\file\sunck.txt")) # 获取目录名(不论是否存在) print(os.path.basename(r"C:\Users\sunck\Desktop\file")) # 获取文件名(不论是否存在) print(os.path.basename(r"C:\Users\sunck\Desktop\file\sunck.txt")) # 获取属性 print(os.path.getsize(r"C:\Users\sunck\Desktop\code\test.py")) print(os.path.getctime(r"C:\Users\sunck\Desktop\code\test.py")) # 判断是否是目录 print(os.path.isdir(r"C:\Users\sunck\Desktop\code")) print(os.path.isdir(r"C:\Users\sunck\Desktop\file")) print(os.path.isdir(r"C:\Users\sunck\Desktop\code\test.py")) # 判断是否是文件 print(os.path.isfile(r"C:\Users\sunck\Desktop\code\test.py")) print(os.path.isfile(r"C:\Users\sunck\Desktop\code\1.txt")) print(os.path.isfile(r"C:\Users\sunck\Desktop\code")) # 判断目录和文件是否存在 print(os.path.exists(r"C:\Users\sunck\Desktop\code\test.py")) print(os.path.exists(r"C:\Users\sunck\Desktop\code\2.py")) print(os.path.exists(r"C:\Users\sunck\Desktop\code")) print(os.path.exists(r"C:\Users\sunck\Desktop\file")) # 判断是否是绝对路径(不论是否存在) print(os.path.isabs(r"C:\Users\sunck\Desktop\code")) print(os.path.isabs(r"C:\Users\sunck\Desktop\file")) print(os.path.isabs(r".\code"))
需要 登录 才可以提问哦