Python-os模块

1. OS模块

  • 操作 “文件 和 目录” 的路径、位置等

2. 路径分隔符

  • win下为"\\"
  • Linux下为"/"

3. 常用方法

# 1. os.getcwd() 返回当前工作目录的绝对路径
print(os.getcwd())


# 2. os.chdir(path) 改变当前工作目录到指定的路径
print("修改之前的工作目录 : %s" % os.getcwd())
os.chdir('E:')
print("之前之后的工作目录 : %s" % os.getcwd())


# 3. listdir (path='.') 返回 path 指定的文件夹所包含的 文件或文件夹 的名字的列表
dirs = os.listdir('.\\dirs')
print(dirs)


# 4. os.mkdir(path) 创建单层目录
#   -- 如果该目录已存在抛出异常
os.mkdir('.\\dir1')
os.mkdir('.\\dir1') # FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件


# 5. os.makedirs(path) 用于递归创建多层"目录"
#   -- 如果该目录已存在抛出异常。
os.makedirs('.\\a\\b\\c.txt')
os.makedirs('.\\a\\b\\c.txt') # FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件


# 6. os.remove(path) 用于删除指定路径的文件。
#   -- 如果指定的路径是一个目录,将抛出 OSError 。
os.remove('.\\dirs\\a.txt')
os.remove('.\\dirs') # PermissionError: [WinError 5] 拒绝访问


# 7. os.rmdir(path) 用于删除单层目录
#   -- 仅当文件夹为空的才可以删除, 否则, 抛出 OSError
os.rmdir('a') 
os.rmdir('b') # OSError: [WinError 145] 目录不是空的


# 8. os.removedirs(path) 递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
os.removedirs('.\\a\\b')
os.removedirs('.\\a\\b\\c\\d') # OSError: [WinError 145] 目录不是空的


# 9. os.rename(src, dst) 重命名文件或目录,从 src 到 dst
#   -- 如果 dst 是一个存在的目录, 将抛出OSError
os.rename('a', 'b')
os.rename('a', 'b') # FileNotFoundError: [WinError 2] 系统找不到指定的文件
os.rename('c', 'b') # FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件


# 10. os.system(command) 运行系统的shell命令
#   -- 将字符串转化成命令
cmd1 = 'calc'
cmd2 = 'pip install lxml'
os.system(cmd1) # 打开计算器
os.system(cmd2) # 安装 'lxml'


# 11. 判断文件
    path = '.\\a\\b.txt'
    path1 = path
    path2 = '.\\a\\b.txt'

    # (1). os.path.exists(path)    判断指定路径(目录或文件)是否存在
    print(os.path.exists(path))

    # (2). os.path.isabs(path)     判断指定路径是否为绝对路径
    print(os.path.isabs(path))

    # (3). os.path.isdir(path)     判断指定路径是否存在且是一个目录
    print(os.path.isdir(path))

    # (4). os.path.isfile(path)    判断指定路径是否存在且是一个文件
    print(os.path.isfile(path))

    # (5). os.path.samefile(path1,path2) 判断path1和path2两个路径是否指向同一个文件
    print(os.path.samefile(path1,path2))
    

# 12. 路径解析
    path = '.\\a\\b\\c.tct'

    # # (1) os.path.basename(path)  去掉目录路径,单独返回文件名
    print(os.path.basename(path))

    # (2) os.path.dirname(path)   去掉文件名,单独返回目录路径
    print(os.path.dirname(path))

    # (3) os.path.join(path1[, path2[, ...]]) 将 path1 , path2 各部分组合成一个路径名
    print(os.path.join('..\\os模块', 'a\\b', 'c.txt'))
    print(os.path.join('a\\b\\c', 'b', 'b'))

    # (4) os.path.split(path) 分割文件名与路径,返回 (f_path, f_name) 元组。
    #   -- 如果完全使用目录,它会将最后一个目录作为文件名分离
    #   -- 仅解析 path,不会判断文件或者目录是否存在
    print(os.path.split('.\\a\\b\\c'))

    # (5) os.path.splitext(path) 分离文件名与扩展名,返回 (f_path,f_name) 元组
    #   -- f_path:包含路径、文件名,不包含扩展名
    #   -- f_name:指扩展名
    print(os.path.splitext(path))

4. 其他方法

os.name 				# 返回当前使用的操作系统【包括:'mac','nt'】
os.path.getsize(file)   # 返回指定文件大小,单位是字节
os.path.getatime(file)  # 返回指定文件最近的访问时间
os.path.getctime(file)  # 返回指定文件的创建时间
os.path.getmtime(file)  # 返回指定文件的最新的修改时间

5. shutil模块常用函数

shutil.move(file_path,save) # 将文件移动到 save文件夹下,同时可以重命名
shutil.copy(file_path,save) # 将文件复制到 save文件夹下,同时可以重命名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值