python模块shutil函数怎么用

技术python模块shutil函数怎么用小编给大家分享一下python模块shutil函数怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文大纲os模块是Python标准库中一个重要的模块,里面

边肖想和大家分享一下如何使用python模块的shutil函数。希望你看完这篇文章后有所收获。让我们一起讨论一下。

本文大纲

os模块是Python标准库中的重要模块,提供对目录和文件的常用操作。另一个Python标准库,——shutil库,作为os模块的补充,提供了拷贝、移动、删除、压缩、解压等操作,这些操作一般在这些os模块中是不提供的。但是,需要注意的是shutil模块通过调用ZipFile和TarFile来处理压缩包。

python模块shutil函数怎么用

知识串讲

本文使用的材料基于以下两个文件夹,其中一个是空的。

python模块shutil函数怎么用

1)模块导入

importshutil

2)复制文件

函数:shutil.copy(src,dst)含义:复制文件;参数:src表示源文件,dst表示目标文件夹;注意:当您移动到不存在的“目标文件夹”时,系统会将不存在的“目标文件夹”识别为新文件夹,而不会报告错误。

#1.将“data.txt”从表a移动到表B.

src=r ' c : \ Users \ 29 \ Desktop \ publish \ OS模块\ test _ shutter _ a \ data.txt '

Dst=r 'C: \用户\ 29 \桌面\发布\os模块\ test _ shutter _ b '

shutil.copy(src,dst)

-

#2.将“data.txt”从表A移到表B,并将其重命名为“new_data.txt”。

src=r ' c : \ Users \ 29 \ Desktop \ publish \ OS模块\ test _ shutter _ a \ data.txt '

dst=r ' c : \ Users \ 29 \ Desktop \ publish \ OS模块\ test _ shutter _ b \ new _ data.txt '

shutil.copy(src,dst)

-

#3.将表A的“data.txt”移动到不存在的文件夹。

src=r ' c : \ Users \ 29 \ Desktop \ publish \ OS模块\ test _ shutter _ a \ data.txt '

Dst=r 'C: \用户\ 29 \桌面\发布\os模块\ test _ shutter _ c '

shutil.copy(src,dst)

'''

注意:在案例3中,系统默认将“test _ shuttil _ c”识别为文件名,而不是像我们想象的那样移动到一个新的不存在的文件夹中。

''结果如下:

python模块shutil函数怎么用

00-1010函数:shutter il . copy tree(src,dst)。

含义:复制文件夹;

参数:src表示源文件夹,dst表示目标文件夹;

注意:在这里,只能移动到空文件夹,不能移动到包含其他文件的非空文件夹,否则会报告错误PermissionError;

如果目标文件夹中有其他文件,将报告错误;

#将文件夹A移动到文件夹B,由于之前的操作,此时文件夹B中还有其他文件。

Src=r 'C: \用户\ 29 \桌面\发布\os模块\ test _ shutter _ a '

Dst=r 'C: \用户\ 29 \桌面\发布\os模块\ test _ shutter _ b '

shuttil的结果。复制树(src、dst)如下:

t="python模块shutil函数怎么用">

② 如果指定任意一个目标文件夹,则会自动创建;

# c文件夹原本是不存在的,我们使用了下方的代码,会自动创建该文件夹
src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a"
dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_c"
shutil.copytree(src,dst)

结果如下:

python模块shutil函数怎么用

4)移动文件或文件夹

函数:shutil.move(src,dst)

含义:移动文件/文件夹;

参数:src表示源文件/文件夹,dst表示目标文件夹;

注意:文件/文件夹一旦被移动了,原来位置的文件/文件夹就没了。目标文件夹不存在时,会报错;

# 将当前工作目录下的“a.xlsx”文件,移动到a文件夹下
dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a"
shutil.move("a.xlsx",dst)
----------------------------------------------------------------
# 将a文件夹下的“a.xlsx”文件,移动到b文件夹中,并重新命名为“aa.xlsx”
src = r"C:/Users/黄伟/Desktop/publish/os模块/test_shutil_a\a.xlsx"
dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_b\aa.xlsx"
shutil.move(src,dst)

结果如下:

python模块shutil函数怎么用

注意:移动文件夹操作类似,我这里就不赘述了,自行下去学习。

5)删除文件夹(慎用)

函数:shutil.rmtree(src)

含义:删除文件夹;

参数:src表示源文件夹;

注意:区别这里和os模块中remove()、rmdir()的用法,remove()方法只能删除某个文件,mdir()只能删除某个空文件夹。但是shutil模块中的rmtree()可以递归彻底删除非空文件夹;

# 将c文件夹彻底删除
src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_c"
shutil.rmtree(src)

结果如下:

python模块shutil函数怎么用

6)创建和解压压缩包

zipobj.write():创建一个压缩包;

zipobj.namelist():读取压缩包中的文件信息;

zipobj.extract():将压缩包中的单个文件,解压出来;

zipobj.extractall():将压缩包中所有文件,解压出来;

shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的,因此需要导入这两个模块;

注意:这里所说的压缩包,指的是“.zip”格式的压缩包;

① 创建一个压缩包

import zipfile
import os
file_list = os.listdir(os.getcwd())
# 将上述所有文件,进行打包,使用“w”
with zipfile.ZipFile(r"我创建的压缩包.zip", "w") as zipobj:
    for file in file_list:
        zipobj.write(file)

结果如下:

python模块shutil函数怎么用

② 读取压缩包中的文件信息

import zipfile
with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:
    print(zipobj.namelist())

结果如下:

python模块shutil函数怎么用

③ 将压缩包中的单个文件,解压出来 注意:目标文件夹不存在,会自动创建;

import zipfile
# 将压缩包中的“test.ipynb”文件,单独解压到a文件夹下
dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a"
with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:
    zipobj.extract("test.ipynb",dst)

结果如下:

python模块shutil函数怎么用

④ 将压缩包中所有文件,解压出来; 注意:目标文件夹不存在,会自动创建;

import zipfile
# 将压缩包中的所有文件,解压到d文件夹下
dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_d"
with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:
    zipobj.extractall(dst)

结果如下:

python模块shutil函数怎么用

看完了这篇文章,相信你对“python模块shutil函数怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/51776.html

(0)

相关推荐

  • 数学什么叫因数,小学数学什么是倍数,什么是因数

    技术数学什么叫因数,小学数学什么是倍数,什么是因数①一个整数能够被另一整数整除数学什么叫因数,这个整数就是另一整数的倍数。如15能够被3或5整除,因此15是3的倍数,也是5的倍数。②一个数除以另一数所得的商。如a÷b=c

    生活 2021年10月23日
  • Scrapy框架使用代理IP要点是什么

    技术Scrapy框架使用代理IP要点是什么Scrapy框架使用代理IP要点是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。scrapy框架通过模块化

    攻略 2021年10月28日
  • PostgreSQL如何实现自动更新时间戳

    技术PostgreSQL如何实现自动更新时间戳这篇文章主要介绍PostgreSQL如何实现自动更新时间戳,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是PostgreSQL时间戳数据类型?在P

    攻略 2021年11月24日
  • MySQL基础面试题有哪些

    技术MySQL基础面试题有哪些本篇内容主要讲解“MySQL基础面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL基础面试题有哪些”吧!关系型数据库什么是关系

    攻略 2021年10月22日
  • 内衣码数对照表,胸罩分为哪几个等级,哪个最大

    技术内衣码数对照表,胸罩分为哪几个等级,哪个最大1.罩杯尺寸罩杯尺寸=胸围-下胸围(例如内衣码数对照表:10cm=A罩杯.13cm=B罩杯.15cm=C罩杯18cm=D罩杯.20cm=E罩杯)
    胸罩罩杯尺寸说明表
    罩杯型

    生活 2021年10月24日
  • Vue开发必须知道的技巧有哪些

    技术Vue开发必须知道的技巧有哪些这篇文章主要介绍“Vue开发必须知道的技巧有哪些”,在日常操作中,相信很多人在Vue开发必须知道的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年10月20日