我有几个文件想要删除,它们的名称以相同的开头开始但是有不同的版本号。有人知道如何使用文件名的开头来删除文件吗?
Eg.
version_1.1
version_1.2
有没有一种方法可以删除以版本名称开头的任何文件?
谢谢
我有几个文件想要删除,它们的名称以相同的开头开始但是有不同的版本号。有人知道如何使用文件名的开头来删除文件吗?
Eg.
version_1.1
version_1.2
有没有一种方法可以删除以版本名称开头的任何文件?
谢谢
import os, glob
for filename in glob.glob("mypath/version*"):
os.remove(filename)
替换mypath
的正确路径(或 .
(=当前目录))。并确保不要弄错路径:)
如果文件正在使用,则会引发异常。
I.e.:
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来完成此操作,Shell可能本身就支持这样的操作。
使用哪种语言?
在bash(Linux/Unix)中,您可以使用以下命令:
rm version*
或者在批处理(Windows / DOS)中,您可以使用以下命令:
del version*
opendir (folder, "./") || die ("Cannot open directory!");
@files = readdir (folder);
closedir (folder);
unlink foreach (grep /^version/, @files);
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
import os
import shutil
def cleanse_folder(directory, prefix):
for item in os.listdir(directory):
path = os.path.join(directory, item)
if item.startswith(prefix):
if os.path.isfile(path):
os.remove(path)
elif os.path.isdir(os.path.join(directory, item)):
shutil.rmtree(path)
else:
print("A simlink or something called {} was not deleted.".format(item))
import os
import re
directory = "./uploaded"
pattern = "1638813371180"
files_in_directory = os.listdir(directory)
filtered_files = [file for file in files_in_directory if ( re.search(pattern,file))]
for file in filtered_files:
path_to_file = os.path.join(directory, file)
os.remove(path_to_file)
version_1.*
匹配的文件? - Dominic Rodger