删除以Python名称开头的文件

chr*_*ley 9 python

我有一些我想删除的文件,它们在开始时具有相同的名称,但具有不同的版本号.有谁知道如何使用他们的名字开头删除文件?

Eg.
version_1.1
version_1.2
Run Code Online (Sandbox Code Playgroud)

有没有办法删除任何以名称版本开头的文件?

谢谢

Tim*_*ker 23

import os, glob
for filename in glob.glob("mypath/version*"):
    os.remove(filename) 
Run Code Online (Sandbox Code Playgroud)

替换正确的路径(或.(=当前目录))mypath.并确保你没有错路径:)

如果当前正在使用文件,这将引发异常.

  • 仅在Windows上引发异常.在Unices上删除文件有点不同. (2认同)

Eda*_*aor 11

如果你真的想使用 Python,你可以只使用os.listdir()os.remove()的组合,它返回某个目录中所有文件的列表。

IE:

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))
Run Code Online (Sandbox Code Playgroud)

但是,正如其他答案所指出的那样,您确实不必为此使用 Python,shell 可能本身就支持这样的操作。


ter*_*tor 5

用哪种语言?

在 bash (Linux / Unix) 中,您可以使用:

rm version*
Run Code Online (Sandbox Code Playgroud)

或批量(Windows / DOS),您可以使用:

del version*
Run Code Online (Sandbox Code Playgroud)

如果你想用 Python 写一些东西来做到这一点,那将相当容易 - 只需查看正则表达式的文档即可。

编辑:仅供参考,这是在 Perl 中的操作方法:

opendir (folder, "./") || die ("Cannot open directory!");
@files = readdir (folder);
closedir (folder);

unlink foreach (grep /^version/, @files);
Run Code Online (Sandbox Code Playgroud)