根据txt文件内文件名,提取对应文件至新的文件夹中


以图片文件举例:

1、需要准备的东西:

a.含有要提取的图片的文件名的txt文件:

在这里插入图片描述

b.总的图片文件

在这里插入图片描述

c.创建保存复制的图片的文件夹

2、代码如下:

# -*- coding: utf-8 -*-
import shutil


def objFileName():
    """
    生成文件名列表
    """
    # 1.存有 需要复制的文件的文件名的txt文件路径
    local_file_name_list = r'D:/数据集/dataset/SeaShips(7000)/ImageSets/Main/train.txt'
    obj_name_list = []
    for i in open(local_file_name_list, 'r'):
        obj_name_list.append(i.replace('\n', ''))
    return obj_name_list


def copy_img():
    """
    复制、重命名、粘贴文件
    """
    # 2.指定含有全部文件的文件夹路径
    local_img_name = r'D:/数据集/dataset/SeaShips(7000)/images'
    # 3.指定存放复制的文件的文件夹路径
    path = r'D:/数据集/dataset/SeaShips(7000)/images/train_images'
    for i in objFileName():
        new_obj_name = i + '.jpg' # 4.改成文件的格式。如图片用.jpg
        shutil.copy(local_img_name + '/' + new_obj_name, path + '/' + new_obj_name)


if __name__ == '__main__':
    copy_img()

注:代码中注释的1.~4.需要改成自己的。
如何生成这里需要的txt文件见另一篇:http://t.csdn.cn/luAZp

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用Python的os、re、pandas等模块实现。具体步骤如下: 1. 定义关键词表,以列表形式存储。 2. 遍历txt文件夹,获取所有txt文件的路径。 3. 循环读取每个txt文件,对其进行关键词提取,将包含关键词的句子存储到列表。 4. 将每个txt文件对应提取句子列表、文件名存储到字典。 5. 将字典转换为DataFrame,并通过pandas库将其存储到xlsx文件。 以下是示例代码: ```python import os import re import pandas as pd # 定义关键词列表 keywords = ['keyword1', 'keyword2', 'keyword3'] # 遍历txt文件夹,获取所有txt文件的路径 txt_folder = './txt_folder' txt_files = [os.path.join(txt_folder, f) for f in os.listdir(txt_folder) if f.endswith('.txt')] # 定义存储提取结果的字典 result_dict = {} # 循环读取每个txt文件,对其进行关键词提取 for txt_file in txt_files: with open(txt_file, 'r', encoding='utf-8') as f: # 读取txt文件内容,并按行分割 txt_lines = f.readlines() # 存储包含关键词的句子 matched_sentences = [] for line in txt_lines: for keyword in keywords: # 使用正则表达式匹配包含关键词的句子 if re.search(keyword, line): matched_sentences.append(line.strip()) break # 将每个txt文件对应提取句子列表、文件名存储到字典 result_dict[os.path.basename(txt_file)] = matched_sentences # 将字典转换为DataFrame,并存储到xlsx文件 result_df = pd.DataFrame.from_dict(result_dict, orient='index') result_df.to_excel('result.xlsx', header=False) ``` 其,`os.path.join`函数可以将文件夹路径和文件名组合为完整的文件路径;`readlines`函数可以按行读取文件内容,返回一个列表;`re.search`函数可以在字符串搜索匹配正则表达式的内容。最后通过pandas库将字典转换为DataFrame,并保存到xlsx文件。 ### 回答2: 使用Python遍历txt文件夹,并按照关键词表提取txt文件所有包含关键词的句子,并将提取句子与文件名按行对应存储到xlsx文件,可以按照以下步骤进行: 1. 导入所需的Python库,如`os`、`xlwt`和`xlrd`等。 ```python import os import xlwt import xlrd ``` 2. 定义一个函数,用于提取包含关键词的句子,并返回句子列表。 ```python def extract_sentences(file_path, keywords): sentences = [] with open(file_path, 'r', encoding='utf-8') as file: for line in file: for keyword in keywords: if keyword in line: sentences.append(line.strip()) break return sentences ``` 3. 定义一个函数,用于遍历txt文件夹提取句子,并将提取结果和文件名存储到xlsx文件。 ```python def traverse_folder(folder_path, keyword_list): workbook = xlwt.Workbook() sheet = workbook.add_sheet('Sentences') row = 0 for root, dirs, files in os.walk(folder_path): for file in files: if file.endswith('.txt'): file_path = os.path.join(root, file) sentences = extract_sentences(file_path, keyword_list) if sentences: sheet.write(row, 0, file) for i, sentence in enumerate(sentences): sheet.write(row + i, 1, sentence) row += len(sentences) + 1 workbook.save('sentences.xlsx') ``` 4. 指定txt文件夹路径和关键词列表,调用`traverse_folder`函数进行遍历和提取操作。 ```python folder_path = '/path/to/txt/folder' keyword_list = ['keyword1', 'keyword2', 'keyword3'] traverse_folder(folder_path, keyword_list) ``` 以上代码将会遍历指定的txt文件夹,并将包含关键词的句子及其对应文件名按行存储到名为`sentences.xlsx`的xlsx文件。 ### 回答3: 使用Python遍历txt文件夹提取包含关键词的句子,最后将提取的句子与文件名按行对应存储到xlsx文件的步骤如下: 1. 导入所需的库,如os、glob、xlwt和xlrd。 2. 创建一个函数,接受txt文件的路径和关键词表作为参数。 3. 在函数,首先创建一个空的句子列表和文件名列表。使用glob模块遍历指定路径下的所有txt文件。 4. 循环遍历每个txt文件,打开并逐行读取文件内容。 5. 对于每一行文本,使用关键词表进行匹配,如果匹配成功,则将该句子添加到句子列表,并将文件名添加到文件名列表。 6. 读取完所有txt文件后,将句子列表和文件名列表分别写入xlsx文件的两个不同的列。 7. 最后保存并关闭xlsx文件,完成操作。 下面是一个示例代码: ```python import os import glob import xlwt import xlrd def extract_sentences_from_folder(folder_path, keyword_list): sentences = [] filenames = [] files = glob.glob(os.path.join(folder_path, '*.txt')) for file in files: with open(file, 'r') as f: lines = f.readlines() for line in lines: for keyword in keyword_list: if keyword in line: sentences.append(line.strip()) filenames.append(os.path.basename(file)) break workbook = xlwt.Workbook() sheet = workbook.add_sheet('Extracted Sentences') for i in range(len(sentences)): sheet.write(i, 0, filenames[i]) sheet.write(i, 1, sentences[i]) workbook.save('extracted_sentences.xlsx') # 调用示例 folder_path = 'txt_files_folder' keyword_list = ['关键词1', '关键词2', '关键词3'] extract_sentences_from_folder(folder_path, keyword_list) ``` 以上代码,需要将`txt_files_folder`替换为待遍历的txt文件夹路径,`['关键词1', '关键词2', '关键词3']`替换为你的关键词表。 执行后,代码将遍历指定文件夹的所有txt文件,并将包含关键词的句子与对应文件名按行写入名为`extracted_sentences.xlsx`的xlsx文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZGPing@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值