精华内容
下载资源
问答
  • Python 模糊查找路径下的文件

    千次阅读 2020-06-29 20:02:24
    #业务场景:多线程模糊查找Windows路径下的文件(已实现模糊查找,正在尝试加多线程) 个人学习使用记录,如有bug感谢各位大佬教诲。 #FuzzySearch_v1 import threading from threading import Thread,current_...

    #业务场景:多线程模糊查找Windows路径下的文件(已实现模糊查找,正在尝试加多线程)
    个人学习使用记录,如有bug感谢各位大佬教诲。

    import os
    from concurrent.futures import ThreadPoolExecutor
    
    class FuzzySearch():
    	    def walkFile(self,ipath = None,ifile = None):
            with ThreadPoolExecutor(max_workers=10) as workers:  # 开10线程?
                workers.map(bg, range(20))
            for root, dirs, files in os.walk(ipath):
                # root 表示当前正在访问的文件夹路径
                # dirs 表示该文件夹下的子目录名list
                # files 表示该文件夹下的文件list
                for f in files:
                    abs_path = os.path.join(root,f)
                    if ifile in f:
                        print('查找内容参考路径:%s' % (abs_path))
    bg = FuzzySearch()
    bg.walkFile("D:/", "lee")
    

    现在已经实现了文件查找的功能,多线程还在学习中、、、

    展开全文
  • /usr/bin/python # -*- coding: utf-8 -*- import os pathlog = "/usr/local/nginx/log" files = os.listdir(pathlog) for f in files: if 'stat' in f and f.endswith('.log'): print ("Foun...

    详细如下:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import os
    
    pathlog = "/usr/local/nginx/log"
    files = os.listdir(pathlog)
    for f in files:
        if 'stat' in f and f.endswith('.log'):
            print ("Found it! " + f)

    运行结果就是查询到的结果

    本文参考:

    如何用 Python 模糊搜索文件 - Lamfai - 博客园

    转载于:https://blog.51cto.com/weiruoyu/2347241

    展开全文
  • import os d = os.system('find data/datafile -name *.txt') print(d) # d返回执行结果,状态为0则语句执行成功 ...#如果查找后要删除的话 d = os.system('find data/datafile -name wsdhr_* | xargs rm -f') print(d)
  • QQ群:476842922(欢迎加群讨论学习) file00 = open("C:\\Users\\Administrator\\dictNewN.txt", "r") content = file00.read() content.strip() list00 = content.splitlines()# 按照行('\r', '\r\n', \n')分隔,...
  • 模糊查找器 :param key: 关键字 :param data: 数据 :return: list """ # 结果列表 suggestions = [] # 非贪婪匹配,转换 'djm' 为 'd.*?j.*?m' # pattern = '.*?'.join(key) pattern = '.*%s.*'%(key) # ...
  • 结果展示 描述:写论文有很多的bib,...这个程序也可以有其他用处,主要用于模糊查找一些条目。 用于剪贴板复制的代码 # pip intall pyerclip import pyperclip def clip(txt=None): if txt is None: return p...

    结果展示
    在这里插入图片描述
    描述:写论文有很多的bib,论文中需要根据ID来cite,如果只能记得起论文的名字,就可以通过此程序模糊搜索,然后选中条目拷贝到内存。

    这个程序也可以有其他用处,主要用于模糊查找一些条目。

    用于剪贴板复制的代码

    # pip intall pyerclip
    import pyperclip
    
    def clip(txt=None):
        if txt is None: return pyperclip.paste() 
        else: pyperclip.copy(txt)  
    

    用于解析bib的代码

    # pip intall bibtexparser
    import bibtexparser
    
    def load_bib():
        arr_bib=[]
        fbib="paper/Biblio/ref.bib"
        with open(fbib, encoding="utf8") as bibtex_file:
            bib_database = bibtexparser.load(bibtex_file)
        
        for e in bib_database.entries:
            arr_bib.append( [e["ID"], e["title"]] )
        
        return arr_bib
    

    用于隐藏控制的代码

    import ctypes
    whnd = ctypes.windll.kernel32.GetConsoleWindow()
    if whnd != 0:
        ctypes.windll.user32.ShowWindow(whnd, 0)
        ctypes.windll.kernel32.CloseHandle(whnd)
    

    主程序

    
    def main(): 
        param.arr_bib = load_bib()
        draw_window()
    
    import re
    from _chj.base.clip import clip as chj_clip
    from tkinter import * 
    class param:
        entryx=None
        var = None
        list_paper_nm=None
    
    def insert_list():
        idx = param.use_idx
        arr = param.arr_bib
        lst = param.list_paper_nm
        lst.delete(0, END)
        for id in idx:
            use = arr[id] 
            lst.insert(END, use)
        
    def click_button(event):
        curIndex = event.widget.nearest(event.y)
        
        ID = param.arr_bib[ param.use_idx[curIndex] ][0]
        chj_clip( ID )
        
        
    def entry_submit(ev = None):
        ss = param.var.get()
        #param.use_idx = [i for i, x in enumerate(param.arr_bib) if x[1].find(ss)!=-1]
        
        pattern = re.compile(ss)
        param.use_idx = [i for i, x in enumerate(param.arr_bib) if pattern.search(x[1])]
        
        insert_list()
        
    
    def draw_window():
        root=Tk()
        #root.update_idletasks()
        x = (root.winfo_screenwidth() - root.winfo_reqwidth()) / 2
        y = (root.winfo_screenheight() - root.winfo_reqheight()) / 2
        root.geometry("+%d+%d" % (x, y))
        
        root.title("bib search")
        entext = StringVar()
        param.var = entext
        #创建输入框
        entryx=Entry(root,font=("微软雅黑",18),textvariable=entext, width=38, bd =3)
        entryx.pack()
        entryx.grid(row=0,column=0)
        
        entryx.bind("<Return>", entry_submit)
        entryx.focus_set()
        #创建按钮
        #buttonx=Button(root,text="查询",font=("宋体",16),command=butonck)
        
        list_paper_nm  = Listbox(root, height=7, width=80) 
        list_paper_nm.grid(row=1, column=0)
        list_paper_nm.bind('<Button-1>', click_button)
        list_paper_nm.bind('<Return>', click_button)
        
        param.list_paper_nm = list_paper_nm
       
        root.mainloop()
    
    if __name__ == '__main__': 
        main() 
    

    通过bbl用序号来找到相应的文章名字

    对上节的代码加入了新的功能,包括右键复制文章名字,以及利用一个bbl文件,通过序号来获得其在新bib文件中的ID。

    is_close_console=1
    
    fbbl=""
    
    def load_bbl():
        if fbbl=="": return
    
        pattern=re.compile(r"^\\newblock ``(.+)$")
        
        arr=[]
        with open(fbbl) as fp:
            for line in fp.readlines():
                res = pattern.search(line)
                if res:
                    nm=res.group(1).split(",")[0]
                    arr.append( nm)
                    
        #print(arr)
        #print(len(arr))
        param.bbl_arr=arr
        param.bbl_nstr=len( str(len(arr)) )
        
    import bibtexparser
    def load_bib():
        arr_bib=[]
        fbib="paper/Biblio/ref.bib"
        with open(fbib, encoding="utf8") as bibtex_file:
            bib_database = bibtexparser.load(bibtex_file)
        
        for e in bib_database.entries:
            arr_bib.append( [e["ID"], e["title"]] )
        
        return arr_bib
    
    def main(): 
        if is_close_console: close_console()
        load_bbl()
        param.arr_bib = load_bib()
        draw_window()
    
    import re
    from _chj.base.clip import clip as chj_clip
    from tkinter import * 
    class param:
        entryx=None
        var = None
        list_paper_nm=None
        
        bbl_arr=[]
        bbl_nstr=0
    
    def insert_list():
        idx = param.use_idx
        arr = param.arr_bib
        lst = param.list_paper_nm
        lst.delete(0, END)
        for id in idx:
            use = arr[id] 
            lst.insert(END, use)
        
        if len(idx)==1:
            ID = param.arr_bib[ idx[0] ][0]
            chj_clip( ID )
    
    def right_click_list(event):
        curIndex = event.widget.nearest(event.y)
        title = param.arr_bib[ param.use_idx[curIndex] ][1]
        chj_clip( title )
        
        print(title)
    
    def click_button(event):
        curIndex = event.widget.nearest(event.y)
        
        ID = param.arr_bib[ param.use_idx[curIndex] ][0]
        chj_clip( ID )
        
        #print(curIndex)
        #print(ID)
        
    def entry_submit(ev = None):
        ss = param.var.get()
        #param.use_idx = [i for i, x in enumerate(param.arr_bib) if x[1].find(ss)!=-1]
        ss=ss.strip()
        if ss=="": return
        
        bbl_arr = param.bbl_arr
        if len(ss)<=param.bbl_nstr:
            idx = int(ss) - 1
            if idx<len(bbl_arr):
                ss = bbl_arr[idx]
        
        pattern = re.compile(ss, re.I)
        param.use_idx = [i for i, x in enumerate(param.arr_bib) if pattern.search(x[1])]
        
        insert_list()
        
    
    def draw_window():
        root=Tk()
        #root.update_idletasks()
        x = (root.winfo_screenwidth() - root.winfo_reqwidth()) / 2
        y = (root.winfo_screenheight() - root.winfo_reqheight()) / 2
        root.geometry("+%d+%d" % (x, y))
        
        root.title("bib search")
        
        entext = StringVar()
        param.var = entext
        #创建输入框
        entryx=Entry(root,font=("微软雅黑",12),textvariable=entext, width=50, bd =3)
        entryx.pack()
        entryx.grid(row=0,column=0)
        
        entryx.bind("<Return>", entry_submit)
        entryx.focus_set()
        
        list_paper_nm  = Listbox(root, height=9, width=50, font=("微软雅黑",12)) 
        list_paper_nm.grid(row=1, column=0)
        list_paper_nm.bind('<Button-1>', click_button)
        list_paper_nm.bind('<Button-3>', right_click_list)
        list_paper_nm.bind('<Return>', click_button)
        
        param.list_paper_nm = list_paper_nm
        
        #root.withdraw() # 不显示 
        root.mainloop()
    
    def close_console():
        import ctypes
        whnd = ctypes.windll.kernel32.GetConsoleWindow()
        if whnd != 0:
            ctypes.windll.user32.ShowWindow(whnd, 0)
            ctypes.windll.kernel32.CloseHandle(whnd)
    
    
    if __name__ == '__main__': 
        main() 
    
    展开全文
  • python模糊查询

    2020-06-08 16:54:39
    import re def fuzzyfinder(user_input, collection): suggestions = [] pattern = '.*?'.join(user_input) # Converts 'djm' to 'd.*?j.*?m' regex = re.compile(pattern) # Compiles a regex. ...
    import re
    
    def fuzzyfinder(user_input, collection):
        suggestions = []
        pattern = '.*?'.join(user_input)    # Converts 'djm' to 'd.*?j.*?m'
        regex = re.compile(pattern)         # Compiles a regex.
        for item in collection:
            match = regex.search(item)      # Checks if the current item matches the regex.
            if match:
               suggestions.append((len(match.group()), match.start(), item))
        return [x for _, _, x in sorted(suggestions)]
    
    if __name__ == '__main__':
        collection=['ls','ll','ls -a','ll -a']
        fuzzyfinder('user', collection)

     

    展开全文
  • python glob模块文件路径名模糊查找

    千次阅读 2019-04-03 19:10:47
    python glob模块文件名模糊查找 glob模块可用于对文件路径名实现模糊查找。比如使用匹配符*,?,[]。*匹配0个或多个字符,?匹配单个字符,[]匹配指定范围内的字符,比如[0-9]匹配数字。 使用如下 比如我想得到路径中以...
  • fuzzyfinder, 在 python 中,实现了模糊查找器 fuzzyfinder 在 python 中实现模糊。 匹配字符串列表中的部分字符串条目。 vim插件的SublimeText和 ctrl p 中的模糊查找器类似。文档:https://fuzzyfinder.readthe
  • 用于vim / neovim的怪异快速模糊查找器(Denite matcher)
  • Pythonic界面到fzf,一个CLI模糊查找
  • 通过python实现在文件夹位置下一级文件的删除、模糊查找和重命名等文件管理操作。 步骤描述和实现 步骤描述 模糊查找实现 删除文件 重命名 编制主函数 实现 文件操作通过os包实现,对于文件夹操作,除去查找操作...
  • 目标 : 删除本地桌面上指定格式 xls,dbf,zip,rar 中文件大小大于3M的文件 环境python3.7 编辑器geany 代码 : 1 import os 2 3 path = 'C:\\Users\\Administrator\\Desktop\\' #要删除的文件目录,可以递归...
  • 对数据库查找查找语句使用一下代码(django) from django.db.models import Q Q(列名_ _contaions=需要查找的值) 注意在使用q时需要导入q包
  • python 模糊删除redis的keys def delete_redis_keys_by_match(match, count=20): """ redis模糊删除 :param match: 正则匹配规则 :param count: 每次查找数量 :return: 删除的个数 """ cursor = 0 flag = ...
  • Python 模糊查询

    2019-07-18 09:16:01
    https://www.cnblogs.com/weiman3389/p/6047017.html
  • 模糊搜索python之类的安全语言是一种强大的策略,可用于查找未处理的异常,逻辑错误,由挂起和过多的内存使用引起的逻辑错误和拒绝服务引起的安全性错误。 除经典的单元测试外,模糊测试在现实世界的软件中还可以...
  • 大概思路就是先爬取哔哩哔哩视频的标题,爬取下来后利用range生成顺序编号,通过字符串拼接起来,然后截取文件夹的名字,拿着截取的名字去查找对应的新名字和旧名字,利用python的os模块进行批量重命名,以下是实现代码: ...
  • excel模糊查找 Excel 2010的模糊查找加载项 (Fuzzy Lookup Add-in for Excel 2010) If you work with data in Excel, you know what a mess it can be. I help my customers clean up data that they've imported ...
  • Python实现模糊匹配

    2018-10-17 22:41:45
    Python实现字符串的模糊匹配,‘?’代表一个字符, ‘*’代表任意多个字符。给一段明确字符比如avdjnd 以及模糊字符比如*dj?dji?ejj,判断二者是否匹配。若能匹配输出”Yes”, 否则输出“No”
  • 此系列文章收录在:数据大宇宙 > 数据处理 > E-pd转发本文并私信...后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas前言Excel 中的 vlookup 函数有一个模糊查找选项,其内在原理为二分...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,399
精华内容 6,559
关键字:

python模糊查找

python 订阅