簡體   English   中英

使用 Python 刪除無用的輸出文件

[英]Deleting the useless output files using Python

從特定目錄執行 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嗎?

您可以使用正則表達式,但這在這里太過分了。 只需使用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))

是的,正則表達式在這里工作,但有更簡單的選項,比如對字符串使用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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM