当前位置: 首页 > wzjs >正文

眼镜厂官网信阳seo公司

眼镜厂官网,信阳seo公司,二手书网站建设目标,免费网站建设下载文章目录 【README】【10】组织文件(复制移动删除重命名)【10.1】shutil模块(shell工具)【10.1.1】复制文件和文件夹【10.1.1.1】复制文件夹及其下文件-shutil.copytree 【10.1.2】文件和文件夹的移动与重命名【10.1.3】永久删除文件和文件夹【10.1.4】用…

文章目录

  • 【README】
  • 【10】组织文件(复制+移动+删除+重命名)
    • 【10.1】shutil模块(shell工具)
      • 【10.1.1】复制文件和文件夹
        • 【10.1.1.1】复制文件夹及其下文件-shutil.copytree
      • 【10.1.2】文件和文件夹的移动与重命名
      • 【10.1.3】永久删除文件和文件夹
      • 【10.1.4】用send2trash模块安全删除
    • 【10.2】遍历目录树-os.walk()
    • 【10.3】用zipfile模块压缩文件
      • 【10.3.1】读取zip文件
      • 【10.3.2】从zip文件中解压缩
      • 【10.3.3】创建和添加到zip文件

【README】

本文总结自《python编程快速上手-让繁琐工作自动化》第10章,非常棒的一本书,墙裂推荐;



【10】组织文件(复制+移动+删除+重命名)

【10.1】shutil模块(shell工具)

1)shell模块包含一些函数,用于复制,移动,重命名和删除文件;


【10.1.1】复制文件和文件夹

1)shutil.copy(src,des):把src路径下的文件复制到des路径下,其中src与des都是字符串;若des是一个文件名,则它将作为被复制文件的新名字;

  • 该函数返回一个字符串,表示被复制文件的路径;(注意:shutil.copy仅复制文件,不能复制文件夹

2)把当前路径下的src文件夹下的src01.txt文件复制到当前文件夹下的target文件夹下,且复制后的文件名与原文件名保持一致:

# 把当前路径下的src文件夹下的src01.txt文件复制到当前文件夹下的target文件夹下;
copyResult = shutil.copy(Path.cwd() / 'src/src01.txt', Path.cwd() / 'target')
print(copyResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target\src01.txt

3)把当前路径下的src文件夹下的src01.txt文件复制到当前文件夹下的target文件夹下,且指定复制后的文件名为src01_copy.txt

copyResult2 = shutil.copy(Path.cwd() / 'src/src01.txt', Path.cwd() / 'target/src01_copy.txt')
print(copyResult2)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target\src01_copy.txt

【10.1.1.1】复制文件夹及其下文件-shutil.copytree

1)shutil.copytree: 把src路径表示的文件夹及其子文件夹及所有文件一并复制到des文件夹下;shutil.copytree会创建des文件夹,若des存在则抛出异常;

# 复制文件夹及其下文件-shutil.copytree
# 先删除目的地文件夹
force_remove_dir('target_backup')
# 复制到目的地文件夹
copyDirResult = shutil.copytree(Path.cwd() / 'target', Path.cwd() / 'target_backup')
print(copyDirResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target_backup

【10.1.2】文件和文件夹的移动与重命名

1)shutil.move(src, des): 把src路径表示的文件夹移动到des路径下;一共分为4种情况:

  • 情况1:src是文件夹名,des是文件夹名;等同于移动文件夹并重命名文件夹;
  • 情况2:src是文件名,des是文件夹名;等同于把文件剪切到文件夹;
  • 情况3:src是文件名,des是文件名; 等同于移动文件并重命名文件;

情况1:src是文件夹名,des是文件夹名;等同于移动文件夹并重命名文件夹;

# 情况1:src是文件夹名,des是文件夹名;等同于移动文件夹并重命名文件夹;
# 先删除目的地文件夹
force_remove_dir('target_backup2')
tempResult = shutil.move(Path.cwd() / 'target_backup', Path.cwd() / 'target_backup2')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target_backup2# 强行删除文件夹 
def force_remove_dir(temp_path):if os.path.exists(temp_path):shutil.rmtree(temp_path)

情况2:src是文件名,des是文件夹名;等同于把文件剪切到文件夹;

# 情况2: 情况2:src是文件名,des是文件夹名;等同于把文件剪切到文件夹
tempResult = shutil.move(Path.cwd() / 'target_backup3/src03.txt', Path.cwd() / 'move_dir')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\move_dir\src03.txt

情况3:src是文件名,des是文件名; 等同于移动文件并重命名文件;

# 情况3:src是文件名,des是文件名; 等同于移动文件并重命名文件;
tempResult = shutil.move(Path.cwd() / 'target_backup3/src03_A.txt', Path.cwd() / 'move_dir/src03_A_moved.txt')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\move_dir\src03_A_moved.txt

在这里插入图片描述

2)使用shutil.move()函数的注意点:

  • 如果目标文件夹不存在,则move()会把原文件重命名为目标文件夹的名称;
# 情况4: src是文件名,des是文件夹名称;但des不存在, 则把src表示的文件重命名为des(把target_backup3/src03_C.txt文件重命名为./move_dir2)
tempResult = shutil.move(Path.cwd() / 'target_backup3/src03_C.txt', Path.cwd() / 'move_dir2')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\move_dir2

【提醒】move函数中目的地路径的各层级目录必须存在,否则pyhon抛出异常;


【10.1.3】永久删除文件和文件夹

1)删除文件和文件夹api:

  • os模块:使用os模块中的函数,可以删除一个文件或一个空文件夹;

    • os.unlink(path) : 删除path路径表示的文件;
    • os.rmdir(path): 删除path路径表示的文件夹;该文件夹必须是空的, 不能有任何文件或文件夹;
  • shutil模块:删除一个文件夹及其所有的 内容;

    • shutil.rmtree(path): 删除path路径表示的文件夹,它包含的所有文件及其下各层级子文件夹都会被删除;
    # 删除文件夹与其下各层级文件夹及文件
    def force_remove_dir(temp_path):if os.path.exists(temp_path):shutil.rmtree(temp_path)# 强行删除一个文件
    def force_remove_file(temp_path):if os.path.exists(temp_path):os.remove(temp_path) # os.remove() 等同于 os.unlink()# 删除文件夹delete_dir_a与其下各层级文件夹及文件
    force_remove_dir(Path.cwd() / "delete_dir_a")
    

    【10.1.4】用send2trash模块安全删除

    1)shutil.rmtree():不可恢复删除文件及文件夹;

    2)推荐的方法是:使用send2trash模块,把文件夹和文件发送到回收站,而不是永久删除它们;

    import send2trash# 使用send2trash模块,把文件夹和文件发送到回收站,而不是永久删除它们
    tempResult = send2trash.send2trash("send2trash_test_dir")
    print(tempResult)
    # None
    

    【10.2】遍历目录树-os.walk()

1)os.walk(dirPath):被传入一个文件夹路径,遍历该文件夹下的子文件夹及文件;

2)os.walk(dirPath)返回以下3个值(当前文件夹指的是:for循环时迭代的文件夹):

  • 当前文件夹名称的字符串;
  • 当前文件夹中子文件夹的字符串列表;
  • 当前文件夹中文件的字符串列表;

3)遍历 src文件夹下的子文件夹列表及文件列表;

在这里插入图片描述

# 使用os.walk()遍历文件夹下的子文件夹及文件
import os
from pathlib import Path
root_dir = Path.cwd() / "src"
for cur_dir, sub_dirs, sub_files in os.walk(root_dir):print("当前文件夹=" + cur_dir)print("子文件夹列表=" + str(sub_dirs))print("子文件列表=" + str(sub_files))print("========== 我是分隔符 ==========")

【遍历结果】

当前文件夹=D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\src
子文件夹列表=['child01']
子文件列表=['src01.txt', 'src03.txt', 'src03_A.txt']
========== 我是分隔符 ==========
当前文件夹=D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\src\child01
子文件夹列表=[]
子文件列表=['child01.txt']
========== 我是分隔符 ==========

【10.3】用zipfile模块压缩文件

【10.3.1】读取zip文件

1)读取zip文件,必须创建一个zip文件对象,使用 zipFile.ZipFile(文件名)创建一个Zip文件对象;

import zipfile, os
from pathlib import Path# 读取zip文件
print("====== 读取zip文件 ======")
tempZip01 = zipfile.ZipFile(Path.cwd() / 'zipfile01.zip')
fileList = tempZip01.namelist()
print(str(fileList))
# ['zipfile01/a.txt', 'zipfile01/b.txt', 'zipfile01/']
print(type(fileList))
# <class 'list'>for fileName in fileList:tempFile = tempZip01.getinfo(fileName)print(str(tempFile))print(tempFile.file_size)print(tempFile.compress_size)print("=== 我是分隔符 === ")
# 关闭zip文件
tempZip01.close()

【运行结果】

====== 读取zip文件 ======
['zipfile01/a.txt', 'zipfile01/b.txt', 'zipfile01/']
<class 'list'>
<ZipInfo filename='zipfile01/a.txt' external_attr=0x20 file_size=21>
21
21
我是分隔符
<ZipInfo filename='zipfile01/b.txt' external_attr=0x20 file_size=21>
21
21
我是分隔符
<ZipInfo filename='zipfile01/' external_attr=0x10>
0
0
我是分隔符

【10.3.2】从zip文件中解压缩

1)zipfile的extractAll方法从zip文件中解压缩所有文件和文件夹,并将其放入当前目录中; 若指定了目标文件夹(目录 ),则解压缩到目标文件夹中;

print("====== 从zip文件中解压缩所有文件 ======")
tempZip01 = zipfile.ZipFile(Path.cwd() / 'zipfile01.zip')
tempZip01.extractall(Path.cwd() / 'target_extract')
tempZip01.close()

在这里插入图片描述

2)使用extract函数解压缩单个文件:传入的文件名,必须是namelist()返回的列表中的元素; 可以向extract传入第2个参数,用于表示目标文件夹;若目标文件夹不存在,则新建;也可以不传入第2个参数,则目标文件夹默认是当前文件夹;

print("====== 从zip文件中解压缩单个 ======")
tempZip01 = zipfile.ZipFile(Path.cwd() / 'zipfile01.zip')
result = tempZip01.extract("zipfile01/a.txt", Path.cwd() / 'target_extract')
print(result)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\chapter10_03\target_extract\zipfile01\a.txt
tempZip01.close()

【10.3.3】创建和添加到zip文件

1)使用不同模式打开zi文件:

  • 使用写模式打开zip文件,第2个参数传入w;
  • 使用追加模式打开zip文件,第2个参数传入a;
# 10.3.3 创建和添加到zip文件
print("====== 创建和添加到zip文件 ======")
tempZip02 = zipfile.ZipFile(Path.cwd() / 'zipfile02.zip', "w")
tempZip02.write("10_03.py", compress_type=zipfile.ZIP_DEFLATED)
tempZip02.close()
http://www.dtcms.com/wzjs/523925.html

相关文章:

  • 大连网站建设招标seo是什么服务器
  • 做APP好还是建设网站好廊坊seo网络推广
  • 政府做网站线下推广活动策划方案
  • 宁远做网站msoer最简单的营销方案
  • 吾爱网站优化网站打开速度
  • 只做移动端的网站app推广拉新一手渠道
  • 卖机票的网站怎么做seo专员工作容易学吗
  • 淘宝这种网站怎么做的?哪里可以代写软文
  • 网上有做任务赚钱的网站aso优化前景
  • 免费做威客的网站口碑营销成功案例
  • wordpress文章添加回目录宁波seo服务推广
  • 深圳网站建设 手机网站建设bt磁力猪
  • 网站建设的客户都在哪里如何做网站搜索引擎优化
  • 网站建设全过程公司产品推广方案
  • UltraEdit做网站教程seo入门免费教程
  • 怎么建公司免费网站关键词优化价格表
  • 网站项目报价单模板成年s8视频加密线路
  • wordpress如何修改博客模板北京网站seo公司
  • 日本做爰动漫网站百度关键词优化技巧
  • 绵阳市中医医院网站建设免费发布产品的网站
  • 怎么用node做动态网站网络市场调研的五个步骤
  • 网站可以做10000件事情吗百度竞价推广收费
  • 建筑设计作品展示网站seo信息查询
  • 区住房城乡建设委(房管局)官方网站重庆网站seo多少钱
  • 桂林新站优化前端培训费用大概多少
  • .net做网站用什么框架网址制作
  • 沈阳网站排名seo如何快速推广自己的产品
  • 石狮网站开发东莞百度推广优化
  • 网站客服怎么做的百度关键词排行榜
  • 网站反链接是什么意思建站系统软件有哪些