Discuss / Python / 第二题的文件查找

第二题的文件查找

Topic source
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import os

fname = input('please input file name:')

def search(pwd):
    
    flag = 0  #打印目录的控制条件
    
    #遍历打印带关键字的文件
    for x in os.listdir(pwd):
        if fname in x and os.path.isfile(os.path.join(pwd,x)):
            if flag == 0:   #打印一次目录
                print('\n%s' % pwd)
                flag = 1
            print(x)

    #记录所有的目录
    dir_file = []
    for x in os.listdir(pwd):
        if os.path.isdir(os.path.join(pwd,x)):
            dir_file.append(x)

    #修改路径,进行新一轮查找
    for x in dir_file:
        new_fname = os.path.join(pwd,x)
        search(new_fname)

def main():
    pwd = os.path.abspath('.')
    search(pwd)

if __name__ == '__main__':
   main() 

Traceback (most recent call last):

  File "D:\python\lib\runpy.py", line 197, in _run_module_as_main

    return _run_code(code, main_globals, None,

  File "D:\python\lib\runpy.py", line 87, in _run_code

    exec(code, run_globals)

  File "c:\Users\86183\.vscode\extensions\ms-python.python-2022.4.1\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>

    cli.main()

  File "c:\Users\86183\.vscode\extensions\ms-python.python-2022.4.1\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main

    run()

  File "c:\Users\86183\.vscode\extensions\ms-python.python-2022.4.1\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file

    runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))        

  File "D:\python\lib\runpy.py", line 268, in run_path

    return _run_module_code(code, init_globals, run_name,

  File "D:\python\lib\runpy.py", line 97, in _run_module_code

    _run_code(code, mod_globals, init_globals,

  File "D:\python\lib\runpy.py", line 87, in _run_code

    exec(code, run_globals)

  File "d:\pythonwork\test2.py", line 39, in <module>

    main()

  File "d:\pythonwork\test2.py", line 10, in main

    search(pwd)

  File "d:\pythonwork\test2.py", line 35, in search

    search(new_fname)  #递归

  File "d:\pythonwork\test2.py", line 35, in search

    search(new_fname)  #递归

  File "d:\pythonwork\test2.py", line 18, in search

    for x in os.listdir(pwd):

PermissionError: [WinError 5] 拒绝访问。: 'E:\\$RECYCLE.BIN\\S-1-5-18'


  • 1

Reply