2017-06-10 32 views
3

フェローズ、私はあまりPythonファイルI/Oで動作しませんでした。今は親切に助けてください。Pythonで特定の名前のフォルダを削除するには?

特定の名前を持つすべてのフォルダを削除したいとします。 「1」、「2」、「3」、... 私はコードでそれらを作成しました:

zoom_min = 1 
path_to_folders = 'D:/ms_project/' 
def folders_creator(zoom): 
    for name in range (zoom_min, zoom + 1): 
     path_to_folders = '{0}'.format(name) 
     if not os.path.exists(path_to_folders): 
      os.makedirs(path_to_folders) 

私がチェックしていること、私のPythonコードは、私が書く方法を知っていない状態を持つようにしたいですこれらのフォルダ( '1'、 '2'、 '3'、...)が既に存在する場合:

はいの場合は、すべての内容で削除して上のコードを実行します。 そうでない場合は、コードを実行してください。

ありがとうございました

P.S.プログラミング構文に基づいて 'ディレクトリ'と 'フォルダ'の間に違いはありますか?

+2

_ "書き込みがわからない状態で、これらのフォルダ( '1'、 '2'、 '3'、...)が既に存在するかどうかをチェックする状態です。 'os.path.exists(path_to_folders)'で...問題は何ですか? –

答えて

0

は練習のいくつかの時間後、私は私の心にあったコードになってしまいました。

2

このコードを参考にしてください。

サブフォルダ(1または2または3)が除外されているかどうかを確認するために、os.walk関数を使用してすべてのディレクトリのリストを取得できます。基本的にcmdコマンドを起動できるos.systemを使用すると、deleteコマンドが使用されます。これは粗末な解決策ですが、これが役立つことを望みます。 、私

import os 

# purt r"directorypath" within os.walk parameter. 

genobj = os.walk(r"C:\Users\Sam\Desktop\lel") #gives you a generator function with all directorys 
dirlist = genobj.next()[1] #firt index has list of all subdirectorys 
print dirlist 

if "1" in dirlist: #checking if a folder called 1 exsists 
    print "True" 


#os.system(r"rmdir /S /Q your_directory_here ") 
1

すべてdirectoryfolderの第一は同義語であるので、あなたが探しているのチェックでは、すでに使用したものと同じです。 e。 os.path.exists

ディレクトリ(およびそのすべての内容)を削除する最も簡単な方法は、標準モジュールshutilによって提供される関数rmtreeを使用することです。

以下は私の提案が含まれているコードです。私の最初の質問に私は答えた、特に私にインスピレーションを得たすべての人に

def create_folders(zoom): 
    zoom_min = 1 
    path_to_folders = 'D:/ms_project/' 
    if os.path.isdir(path_to_folders): 
     if not os.listdir(path_to_folders) == []: 
      for subfolder in os.listdir(path_to_folders): 
       subfolder_path = os.path.join(path_to_folders, subfolder) 
       try: 
        if os.path.isdir(subfolder_path): 
         shutil.rmtree(subfolder_path) 
        elif os.path.isfile(subfolder_path): 
         os.unlink(subfolder_path) 
       except Exception as e: 
        print(e) 
     elif os.listdir(path_to_folders) == []: 
      print("A folder existed before and was empty.") 
    elif not os.path.isdir(path_to_folders): 
     os.mkdir("ms_project") 
    os.chdir(path_to_folders) 
    for name in range(zoom_min, zoom + 1): 
     path_to_folders = '{0}'.format(name) 
     if not os.path.exists(path_to_folders): 
      os.makedirs(path_to_folders) 

おかげで、:

import shutil 
zoom_min = 1 
path_to_folders = 'D:/ms_project/' 

def folders_creator(zoom): 
    for name in range (zoom_min, zoom + 1): 
     path_to_folders = '{0}'.format(name) 
     if os.path.exists(path_to_folders): 
      shutil.rmtree(path_to_folders) 
     os.makedirs(path_to_folders) 
関連する問題