2016-04-10 19 views
0

ディレクトリ全体を削除するスクリプトがありますが、2つのファイル(kodi.logおよびkodi.old.log)を除いてすべてを削除するように修正したいので、拡張子.logにする必要がありますスキップしました。2つ以外のディレクトリ内のすべてのファイルを削除する

私が持っているスクリプトは、任意のアイデアをいただければ幸いです

TEMP = xbmc.translatePath(
    'special://home/temp' 
) 
folder = TEMP 
if os.path.exists(TEMP): 
    for the_file in os.listdir(folder): 
     file_path = os.path.join(folder, the_file) 
     try: 
      if os.path.isfile(file_path): 
       os.unlink(file_path) 
      elif os.path.isdir(file_path): shutil.rmtree(file_path) 
       donevalue = '1' 
     except Exception, e: 
      print e 

です。

答えて

0

再帰呼び出しを使用できます。私はそれをテストすることができていないが、以下の作業をする必要があります:

TEMP = xbmc.translatePath(
    'special://home/temp' 
) 
folder = TEMP 
def remove_directory(folder): 
    if os.path.exists(folder): 
     for the_file in os.listdir(folder): 
      file_path = os.path.join(folder, the_file) 
      if file_path in ("kodi.log", "kodi.old.log"): 
       continue 
      try: 
       if os.path.isfile(file_path): 
        os.unlink(file_path) 
       elif os.path.isdir(file_path): 
        remove_directory(file_path) 
        donevalue = '1' 
      except Exception, e: 
       print e 

私はそれが役に立てば幸い!

1

あなたの文では、ご希望のファイルの名前が、これがあれば意味the_file

if the_file not in ['kodi.log', 'kodi.old.log']: 
    # delete the file 

チェックファイルパス

if os.path.isfile(file_path) and 'kodi.log' not in file_path and 'kodi.old.log' not in file_path: 
    # delete the file 

以上のコンパクトな方法ではないかどうかを確認するには、次のようにするかどうファイルがkodi.logまたはkodi.old.logでない場合は、それを削除してください

関連する問題