Python-组织文件

1.复制文件和文件夹

shutil.copy(source,destination) 复制文件,返回一个字符串,表示被复制文件的路径

ret = shutil.copy('name.txt','../2019-07-09/')  # 复制到指定文件夹下
ret = shutil.copy('testcase.xlsx','testcase1.xlsx') #复制并指定文件名称
print(ret)

shutil.copytree()将复制整个文件夹,以及它包含的文件夹和文件

ret1 = shutil.copytree(r'E:\jiashumeng\exercise\2019-07-09',r'E:\jiashumeng\exercise\2019-07-10copy')
# 不能复制到目录存在的文件
print(ret1)

2.文件和文件夹的移动与改名

shutil.move(source, destination),将路径 source 处的文件夹移动到路径
destination,并返回新位置的绝对路径的字符串。

shutil.move('name2.txt',r'E:\jiashumeng\exercise\2019-07-09') #移动到指定目录
shutil.move('name.txt','name2.txt') #移动并修改名称
-shutil.move('name.txt','../2010-07-09/') 如果没有2010-07-09文件夹,则会创建2010-07-09文件 一般不用

如果在 C:\eggs 中原来已经存在一个文件 bacon.txt,它就会被覆写。因为用这
种方式很容易不小心覆写文件,所以在使用 move()时应该注意。

3.永久删除文件和文件夹

os.unlink(path) 将删除path处文件,同os.remove(path)
os.rmdir(path) 将删除path处的文件夹。该文件夹必须为空,其实没有任何文件和文件夹
shutil.rmtree(path) 将删除path处的文件夹,它包含的所有文件和文件夹都会被删除

永久删除文件和文件夹(包括文件夹)
shutil.rmtree("E:\\jiashumeng\\exercise\\2019-07-10copy\\")
for i in os.listdir(r'E:\jiashumeng\exercise\2019-07-10'):
    if i.endswith('.xlsx'):
        os.unlink(i)
# 删除文件
os.unlink(path)
os.remove(path)

4.安全删除文件和文件夹

利用 send2trash,比 Python 常规的删除函数要安全得多,因为它会将文件夹和文件发送到计算机的垃圾箱或回收站,而不是永久删除它们。

baconFile = open('name.txt', 'a')
baconFile.write('Bacon is not a vegetable')
baconFile.close()
send2trash.send2trash('name.txt')

5.遍历目录树

for folderName, subfolders, filenames in os.walk('E:\exercise'):
    print('folderName:',folderName)

    for subfolder in subfolders:
        print('subfolder:',subfolder)

    for filename in filenames:
        print('filename:',filename)

1.当前文件夹名称的字符串。
2.当前文件夹中子文件夹的字符串的列表。
3.当前文件夹中文件的字符串的列表。

5.压缩与解压文件

1.读取ZIP文件

if zipfile.is_zipfile('log(1).zip'):
    name = zipfile.ZipFile('log(1).zip') 
    print(name.namelist()) # 包含所有文件和文件夹的字符串的列表

2.从ZIP文件中解压缩

ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当
前工作目录中

name = zipfile.ZipFile('log(1).zip') 
name.extractall('../2019-07-10/log')

ZipFile 对象的 extract()方法从 ZIP 文件中解压缩单个文件。

name = zipfile.ZipFile('log(1).zip') 
name.extract('20190627/20190627_11.txt',r'E:\jiashumeng\exercise\2019-07-10')
name.close()

传递给 extract()的字符串,必须匹配 namelist()返回的字符串列表中的一个。或
者,你可以向 extract()传递第二个参数,将文件解压缩到指定的文件夹,而不是当
前工作目录。如果第二个参数指定的文件夹不存在,Python 就会创建它。extract()
的返回值是被压缩后文件的绝对路径。

3.创建和添加到 ZIP 文件

要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入'w'
作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指
的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添
加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压
缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩
算法,它对各种类型的数据都很有效)

扫描二维码关注公众号,回复: 6794698 查看本文章
newZip = zipfile.ZipFile('../2019-07-09/new.zip','w')
newZip.write('20190627', compress_type=zipfile.ZIP_DEFLATED)
newZip.close()

猜你喜欢

转载自www.cnblogs.com/jiablogs/p/11165588.html
今日推荐