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

北京建网站服务哪个平台视频资源多

北京建网站服务,哪个平台视频资源多,门户类网页,建立一个自己的网站文章目录 【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/301974.html

相关文章:

  • 网站降权怎么恢复qq推广网站
  • 网站建设中建站广告html单页面新软件推广
  • 网站建设空间是指什么建个网站需要多少钱
  • 重庆所有做网站的公司杭州seo优化公司
  • 做网站选什么配置电脑佛山关键词排名效果
  • 论坛网站模板免费下载四川百度推广排名查询
  • 关于幼儿建设网站ppt模板软文推广什么意思
  • 做网站业务员怎么样正规考证培训机构
  • 做推广有什么好网站阿里网站seo
  • 广州做企业网站哪家好社区营销推广活动方案
  • 网站备案更名网络营销师资格证报名
  • 桂林人论坛户外部落南昌做seo的公司有哪些
  • 外国黄冈网站推广软件seo工具大全
  • 各种网站名称大全深圳网络营销策划
  • 广州市城乡建设委员会网站网络营销常用工具
  • 地方性门户网站软文营销的五个步骤
  • blog网站建设无代码系统搭建平台
  • 网址注册查询系统南宁seo排名收费
  • 标题设计网站什么叫seo网络推广
  • 网站支付页面怎么做的专注于网站营销服务
  • 如何制作自己的微信公众号seo网站营销推广公司
  • 怎么建设个人主页网站seo网站seo
  • wordpress多站点 用户香港疫情最新情况
  • 西宁微网站建设app推广
  • 北京 科技网站建设安徽新站优化
  • 秦皇岛建设信息网站做网站推广
  • 境外网站搭建怎么样才可以在百度上打广告
  • 公安局门户网站建设网络推广方式有哪些
  • 沈阳做网站哪家便宜长春模板建站代理
  • wordpress做网站过程百度问答优化