文件属性
2018-04-30 本文已影响0人
10点睡7点起
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复制再删除源目录