python 判断一个文件夹下的所有文件,去除后缀,在另一个目录中能否找到,找不到就把这个文件删除

# 创建一些文件
def createFile(dst_path,name,suffix):
    num = 0
    for i in range(30):
        file = open(os.path.join(dst_path, name + "_" + str(num) + suffix),'w')
        file.close()
        num += 1

# 判断origin目录中的.txt去除后缀后是否在dst中找到去除后缀加上一个新的jpg后缀,找不到就把origin目录中这个.txt删除
def judgeAIsOrNotInDirB(origin_path, dst_path):
    txt_list = glob2.glob(origin_path + "/*.txt")
    for txt in tqdm(txt_list):
        jpg_path = txt.replace('.txt', '.jpg')
        jpg_name = os.path.split(jpg_path)[1]
        path_file = os.path.join(dst_path, jpg_name)
        if not os.path.exists(path_file):
            print("txt:" + txt)
            os.remove(txt)

origin_path = "D:/data/origin"
dst_path = "D:/data/dst"
createFile("D:/data/origin", "Test", ".txt")
createFile("D:/data/origin", "Test", ".jpg")
judgeAIsOrNotInDirB(origin_path, dst_path)

创建文件

判断后:

 

可以使用Python内置的os模块和docx模块来实现该功能。 首先,需要使用os模块打开指定文件夹,并在此文件夹下创建一个同名文件夹: ```python import os folder_path = r"C:\path\to\folder" # 指定文件夹路径 folder_name = os.path.basename(folder_path) # 获取文件夹名称 new_folder_path = os.path.join(folder_path, folder_name) # 新建文件夹的路径为当前文件夹下的同名文件夹 if not os.path.exists(new_folder_path): # 如果新建文件夹不存在,则创建 os.makedirs(new_folder_path) ``` 接下来,可以使用docx模块批量将指定文件夹下的txt文件转word文件,并将word文件保存到新建的同名文件夹: ```python import os import docx folder_path = r"C:\path\to\folder" # 指定文件夹路径 folder_name = os.path.basename(folder_path) # 获取文件夹名称 new_folder_path = os.path.join(folder_path, folder_name) # 新建文件夹的路径为当前文件夹下的同名文件夹 if not os.path.exists(new_folder_path): # 如果新建文件夹不存在,则创建 os.makedirs(new_folder_path) for file_name in os.listdir(folder_path): # 遍历指定文件夹下的所有文件 if file_name.endswith(".txt"): # 如果文件是txt文件 txt_file_path = os.path.join(folder_path, file_name) # 获取txt文件的路径 word_file_name = os.path.splitext(file_name)[0] + ".docx" # 新建word文件的名称为txt文件的名称加上后缀".docx" word_file_path = os.path.join(new_folder_path, word_file_name) # 新建word文件的路径为新建文件夹下的同名文件夹 doc = docx.Document() # 创建一个空的word文档对象 with open(txt_file_path, "r", encoding="utf-8") as f: # 打开txt文件 lines = f.readlines() # 读取txt文件的所有行 for line in lines: # 遍历txt文件的每一行 doc.add_paragraph(line.strip()) # 在word文档对象添加一个段落,内容为txt文件的一行去掉首尾空白字符 doc.save(word_file_path) # 保存word文档对象为word文件 ``` 完整代码如下: ```python import os import docx folder_path = r"C:\path\to\folder" # 指定文件夹路径 folder_name = os.path.basename(folder_path) # 获取文件夹名称 new_folder_path = os.path.join(folder_path, folder_name) # 新建文件夹的路径为当前文件夹下的同名文件夹 if not os.path.exists(new_folder_path): # 如果新建文件夹不存在,则创建 os.makedirs(new_folder_path) for file_name in os.listdir(folder_path): # 遍历指定文件夹下的所有文件 if file_name.endswith(".txt"): # 如果文件是txt文件 txt_file_path = os.path.join(folder_path, file_name) # 获取txt文件的路径 word_file_name = os.path.splitext(file_name)[0] + ".docx" # 新建word文件的名称为txt文件的名称加上后缀".docx" word_file_path = os.path.join(new_folder_path, word_file_name) # 新建word文件的路径为新建文件夹下的同名文件夹 doc = docx.Document() # 创建一个空的word文档对象 with open(txt_file_path, "r", encoding="utf-8") as f: # 打开txt文件 lines = f.readlines() # 读取txt文件的所有行 for line in lines: # 遍历txt文件的每一行 doc.add_paragraph(line.strip()) # 在word文档对象添加一个段落,内容为txt文件的一行去掉首尾空白字符 doc.save(word_file_path) # 保存word文档对象为word文件 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值