文件属性


os模块处理文件属性

import os

  • 判断系统平台
    • os.name: win显示nt,linux显示posix
    • os.uname(): *nix 支持
    • sys.platform: win显示win32, linux显示linux
  • os.listdir(pathstr): 返回目录内容列表
  • os.stat(path): 根据路径显示对应的元信息
    • path:可以是str或者bytes
  • os.chmod(path, mode=0o777):改变文件的权限
  • os.chown(path,uid,gid): 改变文件的所属用户,所属组

shutil模块(高级文件操作)

  • copyfileobj(fsrc, fdst [,length]):文件内容复制
    • fsrc/fdst: 打开的文件对象
    • 要求fsrc可读,fdst可写
import shutil

filename = 'doc/src.txt'
with open(filename, 'r+') as src:
    src.write('abddaddadsfasdfas')
    src.flush() 
    src.seek(0) # 在复制前确保文件指针的位置
    with open('doc/dst.txt', 'w') as dst:
        shutil.copyfileobj(src,dst)
  • copyfile(src,dst): 文件(二进制)内容复制,不含元数据

    • src、dst是字符串文件路径
  • copymode(src,dst): 仅仅复制文件权限st_mode属性

  • copystat(src,dst): 复制元数据,包含权限

  • copy(src,dst): 复制文件内容、权限和部分元数据

    • 不包含创建时间和修改时间
    • 本质上调用copyfile、copymode
  • copy2(src,dst): 复制文件内容、权限和全部元数据

    • 需要平台支持
    • 本质上调用copyfile和copystat
  • copytree(src,dst,ignore=None,copy_function=copy2): 递归赋值目录

    • src、dst必须是目录,src必须存在、dst必须不存在
    • 默认使用copy2函数
    • ignore是一个可调用对象,用来处理特定文件
  • `move(src,dst,copy_function=copy2)

    • 递归移动文件、目录到目标,返回目标
    • 本身使用的是os.rename方法
    • 不支持os.rename,如果是目录:使用copytree复制再删除源目录

你可能感兴趣的:(文件属性)