2014-12-23 32 views
3

我正在爲我的電腦做一個簡單的python搜索程序,我想知道如何讓它掃描整個C驅動器來搜索文件,而不是文件在與目標文件相同的文件夾?這是我迄今爲止所擁有的。如何使python搜索整個硬盤


import os 

print('What song would you like to listen to?') 
choice = input().title() 
os.startfile(choice + '.mp3') 
+0

我懷疑你要掃描整個C盤,反正。因爲那是所有系統目錄的地方。你可能想限制它到你的用戶目錄。 – Keith

回答

6

如果你有一個根目錄中進行搜索,您可以使用os.walk。它將產生三倍的目錄路徑,該目錄內的目錄以及該目錄內的文件名。例如,如果我們有這樣的目錄結構:

root 
├── dir1 
│   └── file1 
├── dir2 
│   └── subdir 
│    ├── file1 
│    ├── file2 
│    └── file3 
├── file1 
└── file2 

那麼這個代碼:

for path, dirnames, filenames in os.walk('root'): 
    print((path, dirnames, filenames)) 

會打印:

('root', ['dir1', 'dir2'], ['file1', 'file2']) 
('root/dir1', [], ['file1']) 
('root/dir2', ['subdir'], []) 
('root/dir2/subdir', [], ['file1', 'file2', 'file3']) 

所以,如果你正在尋找一個file3,你只要繼續循環,直到您看到file3filenamesthe in operator在此適當)。一旦你看到它,文件的完整路徑是os.path.join(path, 'file3'),你應該可以用os.startfile打開。

+0

你知道我會如何實現嗎?我只是一個困惑的15歲.. – Cailimb

+0

@Cailimb:我沒有完全放棄答案,我已經添加了一些更多的細節,顯示'os.walk'將通過一個例子給你。希望這會幫助你走上正確的軌道。 – icktoofay

+0

不知道這是一個簡單的任務,但我無法弄清楚嗎? – Cailimb

0

使用os模塊中可用的文件和目錄操作。訪問Python文檔的以下部分供參考:

https://docs.python.org/2/library/os.html#os-file-dir

請注意,您不能使用這些方法文件中提取元數據,所以你必須依賴於球員做到這一點。

乾杯,

- =卡梅倫