在从特定目录执行python脚本后,我会得到许多输出文件,但除了5-6个文件外,我还想从该目录中删除其余的文件。我所做的就是,我已经把那些5-6有用的文件放在一个列表中,并删除了列表中没有的所有其他文件。下面是我的代码:
list1=['prog_1.py', 'prog_2.py', 'prog_3.py'] #Extend
import os
dir = '/home/dev/codes' #Change accordingly
for f in os.listdir(dir):
if f not in list1:
os.remove(os.path.join(dir, f))现在我只想再添加一件事情,如果输出文件以output_of_final开头,那么我不希望它们被删除。我该怎么做呢?我应该使用regex吗?
发布于 2022-06-14 04:55:50
你可以用Regex,但这太过分了。只需使用str.startswith方法即可。
此外,使用保留关键字、内置类型和函数作为变量名也是错误的做法。我已将dir重命名为directory. (https://docs.python.org/3/library/functions.html#dir)
list1 = ['prog_1.py', 'prog_2.py', 'prog_3.py'] # Extend
import os
directory = '/home/dev/codes' # Change accordingly
for f in os.listdir(directory):
if f not in list1 and not f.startswith('output_of_final'):
os.remove(os.path.join(directory, f))发布于 2022-06-14 04:57:34
是的,regex在这里工作,但是有一些更简单的选项,比如对字符串使用startswith方法
list1=['prog_1.py', 'prog_2.py', 'prog_3.py'] #Extend
import os
dir = '/home/dev/codes' #Change accordingly
for f in os.listdir(dir):
if (f not in list1) and (not f.startswith('output_of_final')):
os.remove(os.path.join(dir, f))https://stackoverflow.com/questions/72611676
复制相似问题