代码片:
import os
def search_files_with_string(target_string, directory):
for root, dirs, files in os.walk(directory):
for file in files:
if target_string in file:
file_path = os.path.join(root, file)
print(file_path)
for dir in dirs:
if target_string in dir:
dir_path = os.path.join(root, dir)
print(dir_path)
# 输入目标字符串和路径
target_string = input("请输入字符串关键字:")
directory = input("请输入路径:")
# 调用函数进行搜索并打印结果
search_files_with_string(target_string, directory)
以上的Python代码实现了一个函数search_files_with_string
,该函数用于递归搜索指定目录下包含指定字符串的文件名或目录名,并打印出它们的完整路径。
首先,使用import os
导入了os
模块,这是Python中用于与操作系统进行交互的模块。
然后定义了search_files_with_string
函数,接受两个参数:target_string
和directory
。target_string
是要搜索的字符串关键字,directory
是搜索的路径。
在函数内部,使用os.walk
函数遍历给定路径下的所有子目录和文件。os.walk
会返回一个三元组(root, dirs, files)
,其中root
表示当前正在遍历的目录路径,dirs
是该目录下的子目录列表,files
是该目录下的文件列表。
接下来,使用两个嵌套的for
循环遍历文件和目录。对于每个文件和目录,检查是否包含了目标字符串target_string
,如果存在,则使用os.path.join(root, file)
或os.path.join(root, dir)
得到完整的路径,并将其打印出来。
最后,在主程序部分,通过input
函数获取用户输入的目标字符串和路径,并调用search_files_with_string
函数进行搜索并打印结果。