使用python搜索我的pc以检查是否有具有特定名称的文件?

使用python搜索我的pc以检查是否有具有特定名称的文件?,python,Python,文件搜索 我该如何制作一个程序来检查我的电脑是否有一个特定名称的文件,无论该文件是什么类型的,然后打印是或否。 例如,我会输入一个文件名,然后它会打印,如果我有或没有它。我也尝试过类似的方法,但它们对我不起作用。你可以使用os模块来实现这一点 import os def find(name, path): for root, dirs, files in os.walk(path): if name in files: return os.pa

文件搜索


我该如何制作一个程序来检查我的电脑是否有一个特定名称的文件,无论该文件是什么类型的,然后打印是或否。
例如,我会输入一个文件名,然后它会打印,如果我有或没有它。我也尝试过类似的方法,但它们对我不起作用。

你可以使用
os
模块来实现这一点

import os

def find(name, path):
    for root, dirs, files in os.walk(path):
        if name in files:
            return os.path.join(root, name) # or you could print 'found' or something
这将找到第一个匹配项。如果存在,它将返回文件路径,否则返回
None
。请注意,它区分大小写


这是取自答案。

您也可以使用Pathlib模块。使用Pathlib编写的代码可以在任何操作系统上运行

#pathlib will work on any OS  (linux,windows,macOS)
from pathlib import Path 

 # define the search Path here  '.' means current working directory. you can specify other path like Path('/User/<user_name>')
search_path = Path('.')
# define the file name to be searched here.
file_name = 'test.txt'
#iteratively search glob() will return generator object. It'll be a lot faster.
for file in search_path.glob('**/*'): 
    if file.name == file_name:
        print(f'file found =  {file.absolute()}') #print the file path if file is found
        break
    
#pathlib可以在任何操作系统(linux、windows、macOS)上工作
从pathlib导入路径
#在此处定义搜索路径。“”表示当前工作目录。您可以指定其他路径,如路径('/User/'))
搜索路径=路径('.'))
#在此处定义要搜索的文件名。
文件名='test.txt'
#迭代搜索glob()将返回生成器对象。会快得多。
对于搜索路径.glob(“***”)中的文件:
如果file.name==文件名:
打印(f'file found={file.absolute()}')#如果找到文件,则打印文件路径
打破

这是否回答了您的问题?在哪里指定我要查找的文件的名称?谢谢你的邀请answer@rocks2260当您调用函数时。示例:
find('name\u of_file.file\u extension','path/to/folder')
如果您想查看结果,只需将其包装在
print()
语句中即可。感谢您的帮助,还有一件事要做。假设我想搜索这台电脑的目录,这样就可以搜索整台电脑了。我把“这台电脑”放在没有斜线的地方。@rocks2260没有办法一次搜索整台电脑,你必须逐个找到每个磁盘的根目录:“c:\\”,“d:\\”,等等。@rocks2260就像@Mark Ransom说的那样,使用
C://
D://
进行搜索的速度尽可能低。