• 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:jiashumengexercise2019-07-09',r'E:jiashumengexercise2019-07-10copy')
    # 不能复制到目录存在的文件 地址的复制最后包名为新包名2019-07-10copy
     print(ret1)

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

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

    shutil.move('name2.txt',r'E:jiashumengexercise2019-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:jiashumengexercise2019-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:jiashumengexercise2019-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 压缩
    算法,它对各种类型的数据都很有效)

    newZip = zipfile.ZipFile('../2019-07-09/new.zip','w')
    newZip.write('20190627', compress_type=zipfile.ZIP_DEFLATED)
    newZip.close()

    注意事项:

    1.通过shutil.copy() 复制的文件,os.remove(file) 无法删除,但是send2trash()可以删除

  • 相关阅读:
    Asp.net mvc 2 in action 笔记1 概述、Model
    持续集成(CI) 基础
    WCF Service的一些参考资源
    Flash Builder4.5 + BladeDS + Java 集成实例
    .net GC知识点滴
    Silverlight的工具推荐
    php异常处理技术,顶级异常处理器
    【转】理解MySQL——索引与优化
    Zend_Controller的工作流程
    PHP set_error_handler() 函数
  • 原文地址:https://www.cnblogs.com/jiablogs/p/11165588.html
Copyright © 2020-2023  润新知