如何让python搜索整个硬盘

Cai*_*imb 3 python search

我正在为我的计算机制作一个简单的python搜索程序,我想知道如何让它扫描整个C盘来搜索文件,而不是文件与目标文件位于同一个文件夹中?这就是我到目前为止所拥有的.


import os

print('What song would you like to listen to?')
choice = input().title()
os.startfile(choice + '.mp3')
Run Code Online (Sandbox Code Playgroud)

ick*_*fay 6

如果您要在其中搜索根目录,则可以使用os.walk.它将产生三倍的目录路径,该目录中的目录以及该目录中的文件名.例如,如果我们有这个目录结构:

root
??? dir1
?   ??? file1
??? dir2
?   ??? subdir
?       ??? file1
?       ??? file2
?       ??? file3
??? file1
??? file2
Run Code Online (Sandbox Code Playgroud)

然后这段代码:

for path, dirnames, filenames in os.walk('root'):
    print((path, dirnames, filenames))
Run Code Online (Sandbox Code Playgroud)

将打印:

('root', ['dir1', 'dir2'], ['file1', 'file2'])
('root/dir1', [], ['file1'])
('root/dir2', ['subdir'], [])
('root/dir2/subdir', [], ['file1', 'file2', 'file3'])
Run Code Online (Sandbox Code Playgroud)

所以,如果你正在寻找一个file3,你只是不断循环,直到你看到一个file3filenames(in运营商将是适当的在这里).一旦看到它,os.path.join(path, 'file3')就可以打开文件的完整路径os.startfile.