Python文件处理相关函数

文件,文件夹,压缩包处理模块模块–shutil模块
引入:import shutil
shutil是对OS中文件操作的补充:移动、复制、打包、压缩、解压。

1.copy文件内容到另一个文件,可以copy指定大小的内容。

shutil.copyfileobj(fsrc, fdst[, length=16*1024])

注意!fsrc, fdst都是文件对象,需要打开后才能进行复制

import shutil
f1 = open('name', 'r')
f2 = open('name_copy', 'w+')
shutil.copyfileobj(f1, f2, length=16*1024)

2.copyfileobj文件复制需要用open函数打开文件;copyfile不需要。

shutil.copyfile(src, dst)

一句话实现复制文件内容

shutil.copyfile('name', 'name_copy_2')

3.仅copy权限,不更改文件内容、组和用户。

shutil.copymode(src, dst)

test1,test2文件存在,执行copymode不会出错

import shutil
shutil.copymode('test1', 'test2')

目标文件不存在时会报错,此处test3文件不存在

 shutil.copymode('test1', 'test3')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/python/lib/python3.4/shutil.py", line 132, in copymode
   chmod_func(dst, stat.S_IMODE(st.st_mode))
FileNotFoundError: [Errno 2] No such file or directory: 'test233'

4.复制所有的状态信息,包括权限,组,用户,时间等。

shutil.copystat(src,dst)   

5.复制文件的内容以及权限,先copyfile后copymode。

shutil.copy(src,dst)  

6.复制文件的内容以及文件的所有状态信息。先copyfile后copystat。

shutil.copy2(src,dst)   

如果想复制后保留文件的权限,组,用户,时间状态信息,一定用copy2函数。

7.递归的复制文件内容及状态信息。

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,ignore_dangling_symlinks=False) 

8.递归地删除文件。

shutil.rmtree(path, ignore_errors=False, onerror=None)  

9.递归的移动文件。

shutil.move(src, dst)   

10.压缩打包。

make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None)

shutil.move(源文件,目的文件夹) 剪切源文件到目的文件夹中
shutil.remove(源文件) 删除文件
shutil.copyfile(源文件,目的文件) 将源文件复制到目的文件

其他模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值