1

「システムは指定されたファイルを見つけることができません」のような実行時にwinErrorsを取得しますが、それらのファイルが存在することは知っています...アイデアは、再帰を使用してすべてのファイルに自分自身を埋め込んでから削除することです。ファイルの削除にかかった時間。私の友人はこれを Java で作成し、11 秒で 3GB を削除することができました。Python で同じアイデアを使用したかったので、これが結果です。

import os, sys, glob, fileinput, string
from os import * 

def fileInput():
    #asks for input of a file path
    Folder = input("Please input a file path: ")
    filePathLength = len(Folder)
    #checks to make sure input was provided
    if filePathLength == 0:
        print("Please provide a folder...")
        fileInput()
    else:
    #checks to make sure that it is a proper path, ie- that is has ":\\"
    if Folder.find(":\\") == -1:
        print("Make sure the path is valid")
        fileInput()
    else:
        #if the path is a directory it calls the delete folder function
        print("Inputted path: " + Folder)
        if os.path.isdir(Folder):
            deleteFolder(Folder)
        else:
            print("Path does not exist...")
            fileInput()

def deleteFolder(pathDir):
    print(str(pathDir))
    try:
        for folder in os.listdir(pathDir):
            if folder.find(".") == -1:
                deleteFolder(pathDir + "\\" + folder)
    except NotADirectoryError as notADirectory:
        print(str(notADirectory))
    try:
        for folder in os.listdir(pathDir):
           if folder.find(".") != -1:
                os.remove(folder)
                print("deleted file " + str(folder))
    except IOError as errorCheck:
        print(str(errorCheck))

fileInput()

どんなアイデアでも大歓迎です。Windows 7 64 ビットで Python 3.3 を使用しています

4

2 に答える 2

2

os.listdir()相対パスを返します。フルパスを使用しますos.remove(os.path.join(pathDir, folder))

于 2013-01-11T19:44:07.343 に答える
2

あなただけが必要なように聞こえます:

import shutil

path = input("Enter path to delete")

shutil.rmtree(path);
于 2013-01-11T19:52:55.833 に答える