。1 #!は/ usr / binに/のpython3する 2 #- *を-コーディング:UTF-8 - * - 。3 インポートOS 。4 インポートshutil 。5 インポート時間 。6 インポートSYS 。7 インポートサブプロセス 。8は、sys.setrecursionlimit(10000) #最大再帰関数を設定します。深さ、防止無限の再帰スタックオーバーフローとクラッシュを引き起こす 9 10 クラス:UnzipLogFile 11 parentName = " D:\ ERD広東検査ログ" 12 DEFの __init__ (自己ファイルパス): 13 self.parentName = filePathに 14 DEF Iszip(セルフ、ファイル): #ここでは、カスタム関数は、ファイルの種類が圧縮されていないと判断パケットタイプ 15 湿布= [ " .tar.gzを"、" .tar.bz2と"、" .tar.bz "、" の.tar .tgz " " の.tar " " の.tgz " " .zipファイル" " .RAR " " .7z 」] 16 用の Z で圧縮: 17 IFファイル。endswith(Z): #説明:文字列が指定された文字またはストリングを終了するかどうかを決定 18で 戻りZを 19。 20 #はBDCログファイルか否かを判断 21である DEF IsMrsLogFile(自己ファイル名): 22れる [DIRNAME、ファイル名] = os.path.split(ファイル名) 23 mrsFiles SET =((" ubp_bdc01_20 "、" ubp.info.20 " )) 24 のための namefile でmrsFiles: 25 IF namefile でファイル名: 26 リターン真の 27 他: 28 続行 29 戻り偽 30 31である #圧縮ファイルを圧縮解除操作 32 DEF 解凍(セルフは、SRCFILEは、FOLDER_NAME、dstDir): 33である (FOLDER_NAME)os.chdir 34は IF self.IsMrsLogFile(SRCFILE)== FALSE: 35 リターン 36 オーダー= " \ "C:\\プログラムファイル\\ \\ 7z.exe 7ジップ\" X \ "{0} \" -R&LT -o " + dstDir 37 CMD = order.format(SRCFILE) 38は、 プリント(" 抽出します:" 、CMD) 39 os.popen(CMD) #は、コマンドラインコンソールプログラムを呼び出す 40 (5 time.sleep ) 41である #1 shutil.move(STR(注文)、dstDir) 42は、 43である #パス内のすべてのファイルを取得し 44である DEF AllFile(自己ファイルパス): 45 os.chdir(filePathに)#os.chdir指定された現在の作業ディレクトリを変更するためのパス()メソッド 46である パスos.getcwd =() #os.getcwd()メソッドは、現在の作業ディレクトリを返し 47 file_names os.listdir =(「./ 」)#os.listdirをこの方法は、指定したフォルダにフォルダが含まれて返す()ファイルまたはファイルの名前をリストアップ。このリストは、アルファベット順にあります。それは「」含まれていません。また、「..」は同じフォルダにある場合でも。これは、Unix、Windowsでのみ使用することをサポートしています。 48 のための名前でfile_names: 49 パス= + name_path " \\ " +名#必要な 50 IF os.path.isfile(name_path):#はファイルパスかどうかを判断 51である IF self.Iszip(名)で(" .tar.gzの"、" .tar.bz2と" " .tar.bz " " .tar.tgz " " の.tar " " の.tgz " " .zipファイル" " .rarを」、".7z 」:) 52は FILEDIR = os.path.splitext(名)[0] #の組分割経路、リターンパス名およびファイル拡張子 53は IF:os.path.exists(FILEDIR)#はパス経路が存在する場合、リターンパスが存在しない場合はtrue ;.経路は、返し偽 54は shutil.rmtree(FILEDIR) #は、再帰的にディレクトリおよびディレクトリ内のすべての内容を削除し 55 SRCFILEを= STR(パス)+ " \\ " + STR(名) 56である dstDir STR = (パス)+ " \\ " + STR(FILEDIR) 57である のIF self.IsMrsLogFile(SRCFILE)== FALSE: 58 続けて 59 印刷(" ディレクトリの作成:" + FILEDIR)を 60 os.mkdir(FILEDIR) 61がある self.Unzip(SRCFILE、パス、dstDir) 62がされて self.AllFile(dstDir) 63がある のelif os.path.isdir(name_path): #の分析フォルダのパスかどうかを 64 self.AllFile(パス+ " \\ " + 名) 65 os.chdir(filePathに) 66 パス= os.getcwd() 67 68 DEF ファイル名を指定して実行(セルフ): 69 self.AllFile(" D:\ ERD広東検査ログ" ) 70 71であり、 72 '' ' 73れる UnzipLogFile = RUN( "D:\検査ログ保存パス") 74 run.Run(); 75 ' ''