提升效率之道:用一键搜寻文件内关键字并复制的秘诀
直接双击启动
键入所需内容
1, 所要检索的关键词
2, 所在的文件夹
审查结果文件夹
名为"result"的结果文件夹,储存了所有查询成果
关键词(KeyWords)
Python、关键字搜索、文件处理、提高效率
参考资料
1. Python 3.8: Python 是一种广泛使用的高级编程语言,其设计的主要目标是可读性和编程的简便。Python 3.8 是 Python 的一个版本,于 2019 年 10 月 14 日发布。这个版本增加了许多新功能和优化,比如赋值表达式(又名 "海象操作符"),使用更多的位置参数在函数定义中,以及其他一些增强和修复。
2. bat 文件: BAT 文件是一个批处理文件,用于在 Microsoft Windows 系统中自动执行一系列命令。其扩展名为 ".bat"。bat 文件可以用记事本或其他文本编辑器创建和编辑,然后双击文件就能执行一系列预先定义的命令。BAT 文件经常用于自动化常见的计算机任务,如文件管理和系统配置。
3. Python 代码的含义: Python 代码是使用 Python 编程语言编写的指令集。每一行 Python 代码都是一个或多个指令,告诉计算机执行特定的任务。例如,你可以用 Python 代码来创建变量,定义函数,控制程序流程(例如,使用 if 语句和循环),处理数据,等等。Python 的简洁性和可读性使得 Python 代码比许多其他编程语言更易于理解和编写。
希望你有基础的Python知识,以便在求知的道路上走得更远,持之以恒,必能有所收获。
import os
import shutil
import docx
import time
from PyPDF2 import PdfReader
def search_keywords_in_text(text, keywords):
return any(keyword in text for keyword in keywords)
def extract_paragraphs_with_keyword(doc, keywords):
paragraphs = []
for paragraph in doc.paragraphs:
if any(keyword in paragraph.text for keyword in keywords):
paragraphs.append(paragraph.text)
return paragraphs
# 创建结果文件夹(如果不存在)
if not os.path.exists("result"):
os.makedirs("result")
else:
# 清空结果文件夹中的内容
shutil.rmtree("result")
time.sleep(3)
os.makedirs("result")
# 通过输入函数获取要检索的关键字列表
keywords = input("请输入要检索的关键字,用逗号分隔:").split(",")
# 输入目标 PDF 文件的路径
pdf_directory = input("请输入目标 PDF 文件的路径:")
# 存储已复制的文件名
copied_files = []
# 处理目标 PDF 文件夹
for filename in os.listdir(pdf_directory):
if filename.endswith(".pdf"):
# 处理PDF文件
pdf_path = os.path.join(pdf_directory, filename)
with open(pdf_path, "rb") as file:
pdf = PdfReader(file)
text = "".join(page.extract_text() for page in pdf.pages)
if search_keywords_in_text(text, keywords):
if filename not in copied_files: # 检查是否已复制文件
shutil.copy(pdf_path, os.path.join("result", filename))
copied_files.append(filename)
print("*" * 30)
print(f"在文件 '{filename}' 中找到以下包含关键字的段落:")
print("*" * 30)
for page in pdf.pages:
for paragraph in page.extract_text().split("\n"):
if any(keyword in paragraph for keyword in keywords):
print(paragraph)
elif filename.endswith(".docx"):
# 处理DOCX文件
docx_path = os.path.join(pdf_directory, filename)
doc = docx.Document(docx_path)
text = "".join(paragraph.text for paragraph in doc.paragraphs)
if search_keywords_in_text(text, keywords):
if filename not in copied_files: # 检查是否已复制文件
shutil.copy(docx_path, os.path.join("result", filename))
copied_files.append(filename)
print("*" * 30)
print(f"在文件 '{filename}' 中找到以下包含关键字的段落:")
print("*" * 30)
paragraphs_with_keyword = extract_paragraphs_with_keyword(doc, keywords)
for paragraph in paragraphs_with_keyword:
print(paragraph)
# 提示已完成处理
print("处理完成。")
鸡貔鹈之诗
在代码杠杆的魔力下,我心中荡起了一阵难以言喻的喜悦,这个神奇的生物,承载着我对编码世界的深深热爱,将我的生活压力渐渐消散,换来更多的快乐与宁静。
编程开启了一扇通往无限可能的大门。无论是探索问题的解决方案,还是自动化琐碎的任务,亦或是创造出令人惊叹的应用程序,编程都赋予了我无穷的力量,使我能够舒展翅膀,在数字的世界中自由飞翔。
如果你渴望领略编程的魅力,只需选定一门语言,如Python、JavaScript、Java等,踏上这段奇妙之旅。借助鸡貔鹈,在线教程、编程平台和开发工具,你将迸发出个人兴趣与无限创造力。无论是解决实际问题还是追逐内心的激情,编程将为你开启一扇通往快乐与成就的大门。
让我们怀揣着文艺的梦想,在编程的世界中减轻生活的压力,释放更多快乐的光芒吧!让我们与鸡貔鹈一同起舞,以代码的杠杆轻松超越生活的难题,享受创作和探索带来的美好!
爱上鸡貔鹈, 让代码杠杆减轻你的生活压力, 😄
微信号: jesseshachou
备注: gpt爱好者
或扫二维码