zoukankan      html  css  js  c++  java
  • python之shutil模块

    1、shutil模块介绍

      shutil(或称为 shell 工具)模块中包含一些函数,让你在 Python 程序中复制、移动、改名和删除文件。要使用 shutil 的函数,首先需要 import shutil。

    2、方法

    2.1、复制文件和文件夹

    2.1.1、shutil.copy(source, destination)   

      将路径 source 处的文件复制到路径 destination处的文件夹(source 和 destination 都是字符串)。如果 destination 是一个文件名,它将作为被复制文件的新名字。该函数返回一个字符串,表示被复制文件的路径。

    import shutil
    shutil.copy("F:\share\python\style.css", "F:\share")

      输出结果:

    'F:\share\style.css'
    import shutil
    shutil.copy("data.sql", "F:\share")

      输出结果:

    'F:\share\data.sql'

    2.1.2、shutil.copytree(source, destination)

      将路径 source 处的文件夹,包括它的所有文件和子文件夹,复制到路径 destination 处的文件夹。 source 和destination 参数都是字符串。该函数返回一个字符串,是新复制的文件夹的路径。

    import shutil
    shutil.copytree("tornado", "F:\share\test")

      输出结果:

    'F:\share\test' 

     

    2.2、文件和文件夹的移动与改名 

    2.2.1、shutil.move(source, destination)

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

    import shutil
    shutil.move("F:\share\python\func.txt", "F:\share\test")

      输出结果:

    'F:\share\test\func.txt'

    2.3、永久删除文件和文件夹

      利用 os 模块中的函数,可以删除一个文件或一个空文件夹。但利用 shutil 模块,可以删除一个文件夹及其所有的内容。

    2.3.1、os.unlink(path)

      删除 path 处的文件。

    import os
    
    for filename in os.listdir("F:\share\python"):
        if filename.endswith(".txt"):
            print(filename)
            os.unlink(filename)

      输出结果:

    new.txt

    2.3.2、os.rmdir(path)

      删除 path 处的文件夹。该文件夹必须为空,其中没有任何文件和文件夹。

    import os
    os.rmdir("F:\share\test")

      输出结果:

    ---------------------------------------------------------------------------
    OSError                                   Traceback (most recent call last)
    <ipython-input-16-8c8f7b0cf6ca> in <module>()
          1 import os
    ----> 2 os.rmdir("F:\share\test")
    
    OSError: [WinError 145] 目录不是空的。: 'F:\share\test'
    import os
    path = "F:\share\test\hello"
    print(os.path.exists(path))
    os.rmdir(path)
    print(os.path.exists(path))

      输出结果:

    True
    False

    2.3.3、shutil.rmtree(path)

      删除 path 处的文件夹,它包含的所有文件和文件夹都会被删除。

    import shutil
    path = "F:\share\test\imges"
    print(os.path.exists(path))
    shutil.rmtree(path)
    print(os.path.exists(path))

      输出结果:

    True
    False

    2.4、用 send2trash 模块安全地删除   

      因为 Python 内建的 shutil.rmtree()函数不可恢复地删除文件和文件夹,所以 用起来可能有危险。删除文件和文件夹的更好方法,是使用第三方的 send2trash 模块。你可以在终端窗口中运行 pip install send2trash,安装该模块(参见附录 A,其中更详细地解释了如何安装第三方模块)。

      利用 send2trash,比 Python 常规的删除函数要安全得多,因为它会将文件夹和文件发送到计算机的垃圾箱或回收站,而不是永久删除它们。如果因程序缺陷而用send2trash 删除了某些你不想删除的东西,稍后可以从垃圾箱恢复。

    import send2trash
    path = "F:\share\test\templates"
    print(os.path.exists(path))
    send2trash.send2trash(path)
    print(os.path.exists(path))

      输出结果:

    True
    False

      查看垃圾箱:

  • 相关阅读:
    Python 【第十三章】 Django 之 FORM
    Django-Model操作数据库(增删改查、连表结构)参考
    Python 【第十二章】 Django 之 Model 数据库操作
    Python 【第十一章】 Django模版
    Python 【第十章】 Django路由
    Ajax操作如何实现跨域请求 (JSONP和CORS实现Ajax跨域的原理)
    浏览器同源政策概述
    Python 【第九章】 Django基础
    python 2.7下的正则将中文分隔符去掉
    python time应用 之时间戳转换
  • 原文地址:https://www.cnblogs.com/bad-robot/p/9734273.html
Copyright © 2011-2022 走看看