Python文件系统操作

1. 路径操作

  • 查看路径是否存在:

    import os
    
    if os.path.exists(r'E:\jupyter'):
        print('exist')
    
  • 拼接路径:

    path = os.path.join('C:\\', 'a', 'b', 'c')		# C:\a\b\c
    
  • 查看文件类型:

    path = r'C:\Users\Public\Desktop\Microsoft Edge.lnk'
    
    if os.path.isdir(path):
        print('dir')
    elif os.path.isfile(path):
        print('file')
    else:
        print('other')
    

2. 目录操作

  • 创建目录:

    os.makedirs(r'E:\a\b\c')        # 会创建缺失的父目录
    os.mkdir(r'E:\a\b\c\d')         # 不会创建缺失的父目录
    
  • 删除目录:

    import os
    import shutil
    
    os.rmdir(r'E:\a\b\c\d')     # 删除空目录
    shutil.rmtree(r'E:\a')      # 递归删除目录(非空目录)
    
  • 读取目录:

    entries = os.listdir(r'E:\jupyter')
    for filename in entries:
        print(filename)
    
    .ipynb_checkpoints
    matplotlib.ipynb
    networkx
    PyTorch
    
  • 当前工作目录:

    os.chdir(r'E:\\')		# 切换当前工作目录
    
    cur_dir = os.getcwd()	# 获取当前工作目录
    print(cur_dir)
    
  • 拷贝目录:

    # 递归拷贝 E:\jupyter 至 E:\a\jupyter
    # 会创建缺失的父目录
    shutil.copytree(r'E:\jupyter', r'E:\a\jupyter')
    
  • 遍历目录:

    # cur_path: 当前路径
    # sub_dirs: 当前路径包含的所有子目录
    # files: 当前路径包含的所有文件
    for cur_path, sub_dirs, files in os.walk(r'E:\jupyter'):
        print(cur_path, sub_dirs, files)
    
    E:\jupyter ['.ipynb_checkpoints', 'networkx', 'PyTorch'] ['matplotlib.ipynb']
    E:\jupyter\.ipynb_checkpoints [] ['matplotlib-checkpoint.ipynb', 'networkx-checkpoint.ipynb']
    E:\jupyter\networkx ['.ipynb_checkpoints'] ['edgelist.txt', 'networkx.ipynb']
    ...
    

3. 文件操作

注:目录也属于文件。

  • 重命名:

    # 将 E:\tmp\a.mp4 重命名为 E:\tmp\A.mp4
    os.rename(r'E:\tmp\a.mp4', r'E:\tmp\A.mp4')
    
  • 删除文件:

    os.remove(r'E:\tmp\A.mp4')
    
  • 查看文件信息:

    stat = os.stat(r'E:\jupyter')
    print(stat)
    
    os.stat_result(st_mode=16895, st_ino=562949954788505, st_dev=780501735, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1630978768, st_mtime=1630832561, st_ctime=1630718956)
    
  • 拷贝文件

    shutil.copyfile(r'E:\tmp\b.mp4', r'E:\tmp\c.mp4')
    
  • 移动文件(或递归地移动目录)

    # 移动 E:\tmp\test 至 E:\b\test
    shutil.move(r'E:\tmp\test', r'E:\b\test')
    

    通过重命名操作也可以实现文件或目录的移动:

    os.rename(r'E:\b\test', r'E:\tmp\test')
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值