diff --git "a/OfficeAutomation/Task01 \346\226\207\344\273\266\350\207\252\345\212\250\345\214\226\344\270\216\351\202\256\344\273\266\345\244\204\347\220\206.md" "b/OfficeAutomation/Task01 \346\226\207\344\273\266\350\207\252\345\212\250\345\214\226\344\270\216\351\202\256\344\273\266\345\244\204\347\220\206.md" index 853e711..3c31b6b 100644 --- "a/OfficeAutomation/Task01 \346\226\207\344\273\266\350\207\252\345\212\250\345\214\226\344\270\216\351\202\256\344\273\266\345\244\204\347\220\206.md" +++ "b/OfficeAutomation/Task01 \346\226\207\344\273\266\350\207\252\345\212\250\345\214\226\344\270\216\351\202\256\344\273\266\345\244\204\347\220\206.md" @@ -2,9 +2,9 @@ - [Task 01 文件自动化处理](#task-01-文件自动化处理) - [1.1文件处理](#11文件处理) - - [1.1.1 文件与文件路径](#111--文件与文件路径) - - [1.1.2 当前工作目录](#112--当前工作目录) - - [1.1.3 路径操作](#113--路径操作) + - [1.1.1 文件与文件路径](#111--文件与文件路径) + - [1.1.2 当前工作目录](#112--当前工作目录) + - [1.1.3 路径操作](#113--路径操作) - [1.1.3.1 绝对路径和相对路径](#1131-绝对路径和相对路径) - [1.1.3.2 路径操作](#1132-路径操作) - [1.1.3.3 路径有效性检查](#1133-路径有效性检查) @@ -17,9 +17,9 @@ - [1.1.5.3 写入文件](#1153-写入文件) - [1.1.5.4 保存变量](#1154-保存变量) - [1.1.6 练习](#116-练习) - - [1.1.7 组织文件](#117--组织文件) - - [1.1.1.7.1 shutil模块](#11171-shutil模块) - - [1.1.1.7.2 复制文件和文件夹](#11172-复制文件和文件夹) + - [1.1.7 组织文件](#117--组织文件) + - [1.1.7.1 shutil模块](#1171-shutil模块) + - [1.1.7.2 复制文件和文件夹](#1172-复制文件和文件夹) - [1.1.7.3 文件和文件夹的移动与改名](#1173-文件和文件夹的移动与改名) - [1.1.7.4 永久删除文件和文件夹](#1174-永久删除文件和文件夹) - [1.1.7.5 用send2trash模块安全地删除](#1175-用send2trash模块安全地删除) @@ -390,11 +390,11 @@ myCats.cats[0]['name'] 所有这种无聊的任务,正是在请求用 Python 实现自动化。通过对电脑编程来完成这些任务,你就把它变成了一个快速工作的文件职员,而且从不犯错。 -#### 1.1.1.7.1 shutil模块 +#### 1.1.7.1 shutil模块 `shutil`(或称为shell工具)模块中包含一些函数,可以在Python程序中复制、移动、改名和删除文件。要使用`shutil`的函数,首先需要`import shutil` -#### 1.1.1.7.2 复制文件和文件夹 +#### 1.1.7.2 复制文件和文件夹 `shutil.copy(source, destination)`:将路径source处的文件复制到路径 destination处的文件夹(source 和 destination 都是字符串),并返回新复制文件绝对路径字符串。 @@ -438,9 +438,9 @@ shutil.copytree('D:\\Datawhale\\python办公自动化','D:\\Datawhale\\practice' 1)、如果source和destination是文件夹,且destination已存在,则会将source文件夹下所有内容复制到destination文件夹中。移动。 -2)、如果source是文件夹,destination不存在,则会将source文件夹下所有内容复制到destination文件夹中,source原文件夹名称将被替换为destination文件夹名。 移动+重命名 +2)、如果source是文件夹,destination不存在,则会将source文件夹下所有内容复制到destination文件夹中,source原文件夹名称将被替换为destination文件夹名。 移动+重命名 -3)、如果source和destination是文件,source处的文件将被移动到destination处的位置,并以destination处的文件名进行命名,移动+重命名。 +3)、如果source和destination是文件,source处的文件将被移动到destination处的位置,并以destination处的文件名进行命名,移动+重命名。 注意:如果destination中有原来已经存在同名文件,移动后,会被覆写,所以应当特别注意。 @@ -625,7 +625,7 @@ exampleZip.close() 1)、编写一个程序,遍历一个目录树,查找特定扩展名的文件(诸如.pdf 或.jpg)。不论这些文件的位置在哪里, 将它们拷贝到一个新的文件夹中。 -2) 、一些不需要的、 巨大的文件或文件夹占据了硬盘的空间, 这并不少见。如果你试图释放计算机上的空间, 那么删除不想要的巨大文件效果最好。但首先你必须找到它们。编写一个程序, 遍历一个目录树, 查找特别大的文件或文件夹, 比方说, 超过100MB 的文件(回忆一下,要获得文件的大小,可以使用 os 模块的 `os.path.getsize()`)。将这些文件的绝对路径打印到屏幕上。 +2)、一些不需要的、 巨大的文件或文件夹占据了硬盘的空间, 这并不少见。如果你试图释放计算机上的空间, 那么删除不想要的巨大文件效果最好。但首先你必须找到它们。编写一个程序, 遍历一个目录树, 查找特别大的文件或文件夹, 比方说, 超过100MB 的文件(回忆一下,要获得文件的大小,可以使用 os 模块的 `os.path.getsize()`)。将这些文件的绝对路径打印到屏幕上。 3)、编写一个程序, 在一个文件夹中, 找到所有带指定前缀的文件, 诸如 spam001.txt,spam002.txt 等,并定位缺失的编号(例如存在 spam001.txt 和 spam003.txt, 但不存在 spam002.txt)。让该程序对所有后面的文件改名, 消除缺失的编号。作为附加的挑战,编写另一个程序,在一些连续编号的文件中,空出一些编号,以便加入新的文件。