Pythonモジュールの再帰処理ファイルとフォルダ

4454 ワード

ここには2つの要件がある:あるディレクトリとサブディレクトリの下のすべてを削除する.svnファイルはあるフォルダの下のすべてのファイルを削除しますPythonの中で、ファイルの操作は主にosモジュールから来て、主な方法は以下の通りです:
os.Listdir(dirname):dirnameの下にあるディレクトリとファイルをリストします.
os.getcwd():現在の作業ディレクトリを取得
os.curdir:現在のディレクトリを返します('.')
os.chdir(dirname):作業ディレクトリをdirnameに変更する
os.path.isdir(name):nameがディレクトリであるか否かを判断し、nameがディレクトリでない場合falseを返す
os.path.isfile(name):nameがファイルであるか否かを判断し、nameが存在しない場合もfalseを返す
os.path.exists(name):ファイルまたはディレクトリnameが存在するかどうかを判断します.
os.path.getsize(name):ファイルサイズを取得し、nameがディレクトリであれば0 Lを返します.
os.path.abspath(name):絶対パスを取得
os.path.normpath(path):仕様path文字列形式
os.path.split(name):ファイル名とディレクトリを分割します(実際には、ディレクトリを完全に使用すると、ファイルまたはディレクトリが存在するかどうかを判断することなく、最後のディレクトリをファイル名として分離します).
os.path.splitext():ファイル名と拡張子を分離
os.path.join(path,name):接続ディレクトリとファイル名またはディレクトリ
os.path.basename(path):ファイル名を返す
os.path.dirname(path):ファイルパスを返す
os.remove(dir)#dirは削除するフォルダまたはファイルパスosである.rmdir(path)#path削除するディレクトリのパス.なお、osを用いる.rmdirが削除したディレクトリは空のディレクトリでなければなりません.そうしないと、関数がエラーになります.ディレクトリの下のsvnコードを削除します:ここで2つの需要があります:あるディレクトリとサブディレクトリの下のすべてを削除します.svnファイルはあるフォルダの下のすべてのファイルを削除しますPythonの中で、ファイルの操作は主にosモジュールから来て、主な方法は以下の通りです:os.Listdir(dirname):dirnameの下にあるディレクトリとファイルをリストします.
os.getcwd():現在の作業ディレクトリを取得
os.curdir:現在のディレクトリを返します('.')
os.chdir(dirname):作業ディレクトリをdirnameに変更する
os.path.isdir(name):nameがディレクトリであるか否かを判断し、nameがディレクトリでない場合falseを返す
os.path.isfile(name):nameがファイルであるか否かを判断し、nameが存在しない場合もfalseを返す
os.path.exists(name):ファイルまたはディレクトリnameが存在するかどうかを判断します.
os.path.getsize(name):ファイルサイズを取得し、nameがディレクトリであれば0 Lを返します.
os.path.abspath(name):絶対パスを取得
os.path.normpath(path):仕様path文字列形式
os.path.split(name):ファイル名とディレクトリを分割します(実際には、ディレクトリを完全に使用すると、ファイルまたはディレクトリが存在するかどうかを判断することなく、最後のディレクトリをファイル名として分離します).
os.path.splitext():ファイル名と拡張子を分離
os.path.join(path,name):接続ディレクトリとファイル名またはディレクトリ
os.path.basename(path):ファイル名を返す
os.path.dirname(path):ファイルパスを返す
os.remove(dir)#dirは削除するフォルダまたはファイルパスosである.rmdir(path)#path削除するディレクトリのパス.なお、osを用いる.rmdirが削除したディレクトリは空のディレクトリでなければなりません.そうしないと、関数がエラーになります.ディレクトリのsvnコードを削除します.

#!/usr/bin/env python

coding=utf-8
import sys, os, stat
def walk(path):
for item in os.listdir(path):
    subpath = os.path.join(path, item)
    mode = os.stat(subpath)[stat.ST_MODE]
    if stat.S_ISDIR(mode):
        if item == ".svn":
            print "Cleaning %s " %subpath
            print "%d deleted" % purge(subpath)
        else:
            walk(subpath)

def purge(path):
count = 0
for item in os.listdir(path):
    subpath = os.path.join(path, item)
    mode = os.stat(subpath)[stat.ST_MODE]
    if stat.S_ISDIR(mode):
        count += purge(subpath)
count += 1
return count

if len(sys.argv) != 2:
print "Usage: python cleansvn.py path"
sys.exit(1)

walk(sys.argv[1])

#!/usr/bin/env python

coding=utf-8
import sys, os, stat
def walk(path):
for item in os.listdir(path):
    subpath = os.path.join(path, item)
    mode = os.stat(subpath)[stat.ST_MODE]
    if stat.S_ISDIR(mode):
        if item == ".svn":
            print "Cleaning %s " %subpath
            print "%d deleted" % purge(subpath)
        else:
            walk(subpath)

def purge(path):
count = 0
for item in os.listdir(path):
    subpath = os.path.join(path, item)
    mode = os.stat(subpath)[stat.ST_MODE]
    if stat.S_ISDIR(mode):
        count += purge(subpath)
count += 1
return count

if len(sys.argv) != 2:
print "Usage: python cleansvn.py path"
sys.exit(1)

walk(sys.argv[1])
ディレクトリの下にあるすべてのファイルとフォルダを削除します.
#!/usr/bin/env python

#coding=utf-8

import os

def delete_all_file(path):

    "delete all folers and files"

    if os.path.isfile(path):

        try:

            os.remove(path)

        except:

            pass

    elif os.path.isdir(path):

        for item in os.listdir(path):

            itemsrc = os.path.join(path, item)

            delete_all_file(itemsrc)

        try:

            os.rmdir(path)

    except:

            pass



if __name__ == "__main__":

    dirname = r'F:\trunk'

    print delete_all_file(dirname)