tarfile读文件python_python处理文件和文件的方法(shutil,filecmp ,MD5,tarfile,zip)...

一、高级文件处理接口shutil

shutil

是一种高层次的文件操作工具

类似于高级API,而且主要强大之处在于其对文件的复制与删除操作更是比较支持好。

使用方法

copyfile( src, dst) 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉

copymode( src, dst) 只是会复制其权限其他的东西是不会被复制的

copystat( src, dst) 复制权限、最后访问时间、最后修改时间

copy( src, dst) 复制一个文件到一个文件或一个目录

copy2( src, dst) 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西

copy2( src, dst) 如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作

copytree(olddir,newdir,True/Flase) 把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接

[root@python ~]# mkdir /tmp/demo

[root@python ~]# cd /tmp/demo/

[root@python demo]# mkdir -p dir1

[root@python demo]# touch a.txt b.txt c.txt

[root@python demo]# touch sh.py cc.py 001.jpg 002.jpg 003.jpg

//创建所需文件

[root@python demo]# ipython

//打开ipython

也可以在PyCharm中创建文件,进行实施。

1、复制文件和文件夹

shutil.copy(file1,file2) #文件

shutil.copytree(dir1,dir2) #文件夹

(1)复制文件

In [1]: import shutil

In [2]: shutil.copy('a.txt','aa.txt')

Out[2]: 'aa.txt'

//可在PyCharm和Linux的相应路径查看是否有生成的文件

In [3]: ls

001.jpg 003.jpg a.txt cc.py sh.py

002.jpg aa.txt b.txt c.txt

(2)复制文件夹

In [5]: shutil.copytree('dir1','dir11')

Out[5]: 'dir11'

In [6]: ls

001.jpg 003.jpg a.txt cc.py dir1/ sh.py

002.jpg aa.txt b.txt c.txt dir11/

(3)将文件内容拷贝到另一个文件中

# _*_ coding:utf-8 _*_

__author__ = 'junxi'

import shutil

# 将文件内容拷贝到另一个文件中

shutil.copyfileobj(open('old.txt', 'r'), open('new.txt', 'w'))

# 拷贝文件

shutil.copyfile('old.txt', 'old1.txt')

# 仅拷贝权限。内容、组、用户均不变

shutil.copymode('old.txt', 'old1.txt')

# 复制权限、最后访问时间、最后修改时间

shutil.copystat('old.txt', 'old1.txt')

# 复制一个文件到一个文件或一个目录

shutil.copy('old.txt', 'old2.txt')

# 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了

shutil.copy2('old.txt', 'old2.txt')

# 把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接

shutil.copytree('C:/Users/xiaoxinsoso/Desktop/aaa', 'C:/Users/xiaoxinsoso/Desktop/bbb')

# 移动目录或文件

shutil.move('C:/Users/xiaoxinsoso/Desktop/aaa', 'C:/Users/xiaoxinsoso/Desktop/bbb') # 把aaa目录移动到bbb目录下

# 删除一个目录

shutil.rmtree('C:/Users/xiaoxinsoso/Desktop/bbb') # 删除bbb目录

2、文件和文件夹的重命名与移动

shutil.move(filel, file2)

shutil.move(file, dir)

(1)文件的重命名

In [7]: shutil.move('aa.txt','dd.txt')

Out[7]: 'dd.txt'

In [8]: ls

00

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值