Python自动化办公[文件操作]—遍历文件夹移动相同的文件

Posted Xy丶Promise

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python自动化办公[文件操作]—遍历文件夹移动相同的文件相关的知识,希望对你有一定的参考价值。


前言

通常我们在进行文件操作时,通常会进行遍历文件夹,以及判断文件是否在文件夹中。
这里我们将基于Python中的os、shutil模块对文件夹进行:
① 遍历文件夹;
② 判断名称是否在文件夹中;
③ 判断两个文件夹中不相同的文件并输出个数以及将其移到对应文件夹中


提示:以下是本篇文章正文内容,下面案例可供参考

一、引入模块

import os
import shutil

二、具体操作

1.遍历文件夹

此处我们使用os的进行遍历整个文件夹的内容,Python会返回一个列表,对应着文件夹中的文件名称

import os

target_file = r"D:\\Program Files"
result = os.listdir(target_file)
print(result)

2.判断文件名称是否在文件夹中

根据上一个例子,使用一个入口输入名称,再用if语句判断是否在os返回的列表当中即可。

target_file = "D:\\Program Files"
result = os.listdir(target_file)
print(result)

put = input()  # put:1.txt
if put in result:  # 精确到后缀名
    print("yes")
else:
    print("no")

3.判断两个文件夹中不相同的文件

根据上文,我们已经做了一个遍历整个文件夹的方法,又做了一个判断名称是否在文件夹当中。

现在我们来将前面两个内容总结在一起,我们做一个判断两个文件夹中不相同的文件,并将不同的文件放到另外一个文件夹中,或是其进行其他操作。

import os,shutil
scr_data = 'scr_move'  #  需要对比文件夹1
targer_data = 'targetFile'  # 需要对比文件夹2
move_data = 'movedata'  #  移动目的地

scr = os.listdir(scr_data)
target = os.listdir(targer_data)
count = 0
for i in range(len(scr)):
    if scr[i] not in target:
        print(f"发现:文件夹中的:{scr[i]} 不在主文件夹中,可以进行操作!")
        count += 1
        # shutil.copy(f"scr_move/{scr[i]}",move_data) # 复制文件;
        # shutil.move(f"scr_move/{scr[i]}",move_data) # 移动文件;
        # shutil.rmtree("scr_move") # 删除整个文件夹,无论其中是否有文件;
        # os.remove(f"scr_move/{scr[i]}")  # 删除文件。
print()
print("遍历文件夹完成!")
print("移动完成!")
print(f"移动总文件数:{count}")

总结

Python中的os模块虽然提供了人们常用的文件操作:新建文件夹、遍历文件夹、删除文件等操作,但是对于文件的移动、复制等操作却没有对应的函数,所以我们可以使用Python中的shutil模块对其进行补充,同时两个模块都是Python中的内置模块。

文章到这里就要结束了,本文内容是博主在使用Python中的经验之谈,如有纰漏或错误的内容还希望大家多多包容,并在下方评论区提出让我们一起学习进步。如果本文章对你起到了帮助,别忘了关注收藏点赞噢,你的鼓励是博主继续创作的动力!

以上是关于Python自动化办公[文件操作]—遍历文件夹移动相同的文件的主要内容,如果未能解决你的问题,请参考以下文章

python入门之后须掌握的知识点(excel文件处理+邮件发送+实战:批量化发工资条)

Python自动化办公批量将文字写入Word文件中的具体操作

Python自动化办公批量将文字写入Word文件中的具体操作

第17天---python办公自动化---读写Excel文件

python自动化办公

Python办公自动化之操作Excel(一)