import os def search_files(path, keyword): result = [] for root, dirs, files in os.walk(path): for file in files: if keyword in file: file_path = os.path.join(root, file) result.append(file_path) return result # 测试 search_files 函数 path = input("请输入文件夹路径:") keyword = input("请输入关键词:") result = search_files(path, keyword) print(f"{path} 文件夹下包含关键词 {keyword} 的文件有:") for file in result: print(file)
时间: 2023-06-27 21:01:59 浏览: 71
这是一个 Python 代码片段,它定义了一个名为 `search_files` 的函数,该函数接受两个参数:`path` 和 `keyword`。`path` 是要搜索的文件夹的路径,`keyword` 是要在文件名中查找的关键词。
该函数使用 `os.walk` 函数遍历 `path` 目录及其所有子目录中的所有文件,并将包含 `keyword` 的文件路径添加到结果列表中。最后,它返回结果列表。
在代码的下半部分,该函数被测试。首先,用户被提示输入文件夹路径和关键词。然后,`search_files` 函数被调用,并将结果保存到 `result` 变量中。最后,使用循环遍历 `result` 列表并打印每个文件的路径。
相关问题
import os import tkinter as tk from tkinter import ttk import pymssql import smtplib from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText host = '..*.**' user = 'sa' password = '123456789' database = 'deste' class MSSQL: """""" def init(self): self.db_config = {"host": host, "user": user, "password": password, "database": database} def __get_connect(self, charset='utf8'): try: # 实例化连接对象 self.conn = pymssql.connect(**self.db_config, charset=charset) cur = self.conn.cursor() except pymssql.DatabaseError: print('连接失败') cur = '' else: print('连接成功') return cur def exec_query(self, str_sql): cur = self.__get_connect(charset='GBK') cur.execute(str_sql) results_list = cur.fetchall() cur.close() self.conn.close() return results_list def exec_non_query(self, str_sql): cur = self.__get_connect() cur.execute(str_sql) self.conn.commit() cur.close() self.conn.close() def zhaowenjian(list_result): ''' 需要查找的关键字列表 和对应的path ''' print(list_result) result1 = [item[3] + item[2] for item in list_result if item[0] == 6] result2 = [item[3] + item[2] for item in list_result if item[0] == 2] path1 = 'E:/出货报告/5604' path2 = 'E:/出货报告1/5604' keywords1 = result1 keywords2 = result2 ''' 找到文件路径 ''' file_dict = {} for pn in keywords1: file_dict[pn] = [] for pn in keywords2: file_dict[pn] = [] for root, dirs, files in os.walk(path1): for file in files: for keyword in keywords1: if keyword in file: file_dict[keyword].append(os.path.join(root, file)) for root, dirs, files in os.walk(path2): for file in files: for keyword in keywords2: if keyword in file: file_dict[keyword].append(os.path.join(root, file)) print(file_dict) for key,value in file_dict.items(): print(key,value,len(value)) return file_dict def show_file_dict(): file_dict = zhaowenjian(list_result) if name == 'main': Sql = """SELECT [WHSE_PTR] , [SALES_ORDER] , [CP_REV] , [CUSTOMER_PART_NUMBER] , [INTIME] , [stat] FROM[fineReport].[dbo].[lCSRM5604] where stat = 1""" list = MSSQL().exec_query(Sql) list_result = list zhaowenjian(list_result) show_file_dict() 在Django中调用这个py文件的代码
在 Django 中调用这个 py 文件的代码可以通过以下步骤实现:
1. 在 Django 项目中创建一个 app,例如命名为 filesearch。
2. 在 filesearch 目录下创建一个名为 utils 的文件夹,用于存放工具类。
3. 在 utils 文件夹中创建一个名为 mssql.py 的文件,将 MSSQL 类及其依赖的模块放入其中。
4. 在 utils 文件夹中创建一个名为 file_search.py 的文件,将 zhaowenjian 函数和 show_file_dict 函数放入其中。
5. 在 filesearch 目录下创建一个名为 views.py 的文件,用于处理请求。
6. 在 views.py 中引入 utils 文件夹下的 mssql.py 和 file_search.py 文件。
7. 在 views.py 中编写视图函数,例如:
```python
from django.http import JsonResponse
from .utils.mssql import MSSQL
from .utils.file_search import zhaowenjian, show_file_dict
def file_search(request):
list = MSSQL().exec_query("SELECT [WHSE_PTR], [SALES_ORDER], [CP_REV], [CUSTOMER_PART_NUMBER], [INTIME], [stat] FROM [fineReport].[dbo].[lCSRM5604] WHERE stat = 1")
file_dict = zhaowenjian(list)
result = show_file_dict(file_dict)
return JsonResponse(result)
```
8. 在 urls.py 中配置路由,例如:
```python
from django.urls import path
from . import views
urlpatterns = [
path('file_search/', views.file_search, name='file_search'),
]
```
这样,就可以通过访问 /file_search/ 来调用 file_search 函数,获取文件路径字典的 JSON 格式的响应。
import os x = input("请输入文件夹路径:") y = input("请输入关键词:") def findkeyword(path, keyword): result = [] for root, dirs, files in os.walk(path): for file in files: if keyword in file: result.append(os.path.join(root, file)) return result new_file = findkeyword(x, y) if len(new_file) == 0: print("未找到包含关键词的文件") else: print("包含关键词的文件名有:") for file in new_file: print(file)
这是一个Python代码,功能是在指定文件夹中查找文件名包含关键词的文件,并将结果输出。具体的操作步骤如下:
1. 用户输入文件夹路径和关键词。
2. 定义了一个名为findkeyword的函数,用于查找包含关键词的文件。
3. 在函数中使用os.walk函数遍历指定路径下的每个文件和文件夹,如果文件名包含关键词,则将文件的路径添加到结果列表中。
4. 最后根据结果列表的长度输出结果。
你可以将这段代码保存为.py文件并运行,输入文件夹路径和关键词,即可查找包含关键词的文件。
阅读全文