我想刪除幾個文件,它們在開始時名稱相同,但版本號不同。有誰知道如何使用他們的名字開頭刪除文件?刪除以名字開頭的文件Python
Eg.
version_1.1
version_1.2
有沒有一種方法可以刪除任何以名稱版本開頭的文件?
謝謝
我想刪除幾個文件,它們在開始時名稱相同,但版本號不同。有誰知道如何使用他們的名字開頭刪除文件?刪除以名字開頭的文件Python
Eg.
version_1.1
version_1.2
有沒有一種方法可以刪除任何以名稱版本開頭的文件?
謝謝
import os, glob
for filename in glob.glob("mypath/version*"):
os.remove(filename)
替代正確的路徑(或.
(=當前目錄))爲mypath
。並確保你沒有得到錯誤的路徑:)
這將引發一個異常,如果一個文件當前正在使用。
只在Windows上引發異常。刪除文件在Unices上有點不同。 – gnud
在哪種語言?
在bash(的Linux/Unix),你可以使用:
rm version*
或批量(在Windows/DOS),你可以使用:
del version*
如果你想要寫的東西要做到這一點在Python中它會相當簡單 - 只需查看正則表達式的文檔即可。
編輯: 僅供參考,這是如何做到這一點在Perl:
opendir (folder, "./") || die ("Cannot open directory!");
@files = readdir (folder);
closedir (folder);
unlink foreach (grep /^version/, @files);
如果您確實想使用Python,您可以使用os.listdir()的組合,該組合返回特定目錄中所有文件的列表,以及os.remove()。
即:
my_dir = # enter the dir name
for fname in os.listdir(my_dir):
if fname.startswith("version"):
os.remove(os.path.join(my_dir, fname))
然而,正如其他的答案中指出,你真的不必使用Python這一點,外殼可能本身就支持這樣的操作。
沒有太多文件的時候很好! –
import os
os.chdir("/home/path")
for file in os.listdir("."):
if os.path.isfile(file) and file.startswith("version"):
try:
os.remove(file)
except Exception,e:
print e
所以你想刪除匹配'version_1。*'的文件嗎? –