2017-04-06 46 views
-1

我在我目前的工作目錄中有我想要刪除的文件。它們都有一個以字符串'words'開頭的文件名(例如,文件words_1.csvwords_2.csv)。我想匹配當前目錄中以'words'開頭的所有文件並刪除它們。搜索模式會是什麼?使用部分文件名python刪除所有文件

我發現這從here,但它不完全回答這個問題。

import os, re 

def purge(dir, pattern): 
    for f in os.listdir(dir): 
     if re.search(pattern, f): 
      os.remove(os.path.join(dir, f)) 

回答

0

如果我正確理解你的問題,你有這個功能,你問它如何使用。你應該能夠簡單地呼叫:

purge('/path/to/your/dir','words.*') 

這將刪除以字符串「words」開頭的所有文件。

+0

不完全是:任何以「words」開始並具有「csv」擴展名的文件名。你刪除了任何文字。*文件。這錯過了兩個引用的實例,並刪除了其他文件,如「words.txt」。 – Prune

+0

這是怎麼錯過words_1.csv?目前還不清楚所有文件都是csv文件,只是提供的兩個示例。 – dimab0

+0

只有當我將'words。*'替換爲'words *'時,這纔有效。謝謝! – StatsSorceress

0

pattern是一個正則表達式模式。根據你的情況,它只是任何與「字」開頭,以名爲「.csv」結尾,所以你可以使用

pattern = "words*.csv" 
+0

你似乎寫了一個glob而不是正則表達式。 – user2357112

1
t = 'words_1.csv' 
print(t.startswith('words')) 

它的完成。 和模式可能是'^words.*\.csv$',但我建議你閱讀python RE doc

+0

爲了安全,包含一個'os.path.isfile(filename)'作爲一個目錄也可以以'words'開頭。 – Vallentin

+0

這需要我列出每個文件的名稱,不是嗎?我想查找目錄中以'words'開頭的所有文件並刪除它們。 – StatsSorceress

相關問題