编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。
import os class SearchFile(object): def __init__(self,path='.'): self._path=path self.abspath=os.path.abspath(self._path) # 默认当前目录 def findfile(self,keyword,root): filelist=[] for root,dirs,files in os.walk(root): for name in files: fitfile=filelist.append(os.path.join(root, name)) #print(fitfile) print(os.path.join(root, name)) #print(filelist) print('...........................................') for i in filelist: if os.path.isfile(i): #print(i) if keyword in os.path.split(i)[1]: print('yes!',i) # 绝对路径 #else: #print('......no keyword!') def __call__(self): while True: workpath=input('Do you want to work under the current folder? Y/N:') if(workpath == ''): break if workpath=='y' or workpath=='Y': root=self.abspath # 把当前工作目录作为工作目录 print('当前工作目录:',root) dirlist=os.listdir() # 列出工作目录下的文件和目录 print(dirlist) else: root=input('please enter the working directory:') print('当前工作目录:',root) keyword=input('the keyword you want to find:') if(keyword==''): break self.findfile(keyword,root) # 查找带指定字符的文件 if __name__ == '__main__': search = SearchFile() search()
运行结果:
注意:在运行的时候如果选择y,也就是把.py文件所在的目录作为工作目录,此时最好不要把.py文件放到桌面上,因为会遍历桌面上的所有目录及目录下的所有文件,会很大。
以上这篇python 查找文件名包含指定字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我一直在寻找一个命令,该命令将从当前目录返回文件名中包含字符串的文件。我已经看到和命令可以找到以某些内容开头或结尾的文件。 如何返回文件名中包含字符串的文件列表? 例如,if 是当前目录中的文件。 如何返回此文件和其他包含字符串的文件?使用诸如 问题答案: 用途: 它将在当前目录中找到所有包含“字符串”的文件(如果要递归,则删除),并将其打印在屏幕上。 如果要避免文件包含“:”,则可以
问题内容: 要查找当前文件夹中所有包含“ foo”的文件,我使用: 要查找当前文件夹中所有包含“ bar”的文件,我使用: 但是,如何查找不包含“ foo”和“ bar”的所有文件? 问题答案: 要打印 线 不包含某些字符串,可以使用标志: 这样就为您提供了 不 包含或的所有行。 要打印不包含某些字符串的 文件 ,请使用该标志。要不匹配多个字符串,可以将正则表达式与标志一起使用(可以使用多个reg
rank ▲ ✰ vote url 24 644 117 879 url Python中有检查字符串包含的方法吗? 我正在找string.contains或者string.indexof方法. 我希望: if not somestring.contains("blah"): continue 你可以用in啊: if not "blah" in somestring: continue 或
问题内容: 我在Ubuntu上,我想在当前目录和子目录中找到名称包含字符串“ John”的所有文件。我知道可以匹配文件中的内容,但是我不知道如何在文件名中使用它。任何帮助,将不胜感激。 问题答案: 使用find命令,
我的Firebase查询有点麻烦。我想查询objects,其中objects子值包含某个字符串。到目前为止,我有一些东西看起来是这样的: 但这只给出起始值为“b”的对象。我想要包含字符串“b”的对象。我该怎么做?
如何查找在其文件内容中包含特定文本字符串的所有文件? 以下方法不起作用。它似乎显示系统中的每个文件。