1 #- * -コーディング:UTF-8 - * - 2 #著者:ZCB 。3 。4 インポートOS 5 から moviepy.editor インポートVideoFileClip 。6 。7 FILE_DIR = U " E:\\テスト" #は、Uは、一般的なUnicode文字で表される追加します中国語の文字の前に 8。 sum_time = 0 9。 10 クラスFileCheck(): 11 DEF __init__ (自己): 12である self.file_dir = FILE_DIR 13である 14 DEF :get_fileSize(自己ファイル名) 15 "" " 16 ファイルサイズを取得します 。17 "" " 18です file_Byte = os.path.getsize(fileNameに) 。19 リターンself.sizeConvert(file_Byte) 20が 21である DEF get_file_Times(セルフ、ファイル名): 22は、 " "" 23がされた ビデオの長さになっ 24 "" " 25 グローバルsum_time 26は、 クリップ= VideoFileClip(ファイル名) 27 sum_time + = clip.duration 28 file_Times = self.timeConvert(clip.duration) 29 clip.close()#が原因で非常に多くのファイルのプログラムを与えられることを防止することができ、 30 リターンfile_Times 31 DEF sizeConvert(自己、サイズ): #单位换算 32 K、M、G = 1024,1024 ** 2,1024 ** 3 33 ならサイズ> = G: 34 リターン " {:.3f} G " .format (サイズ/ G) 35 ELIFのサイズ> = M: 36 リターン " {:.3f} M " .format(サイズ/ M) 37 ELIFのサイズ> = K: 38 リターン " {:.3f} K " .format(サイズ/ K) 39 、他: 40 リターン " {:.3f}バイト数" .format(サイズ) 41 デフ timeConvert(自己、サイズ): #单位换算 42 M、H = 60,60 ** 2 43 ならサイズ< M: 44 リターン " {。} .3f S " .format(サイズ) 45 ならサイズ< H: 46 リターン " {。} {M:3F} S 」 .format(INT(サイズ// M)、サイズ%M) 47 他: 48 時間=サイズ/ / H 49 分=サイズ%H // M 50 秒=サイズ%H%以下M 51は、 リターン " {H} {} {M :. 3F} S " .format(INT(時間)、INT(MIN)、秒) 52である DEF (自己)をget_all_file: 53である " "" 54は 、すべてのビデオファイルの概要 55 "" " 56は、 ls_file = [] 57である ため、ルート、DIRS、ファイル内os.walk(FILE_DIR): 58 用のファイル内のファイル: 59 IF " MP4 」 でファイルのみ:MP4ファイル番号を追加 60 ls_file.append(OS。 path.join(ルートファイル)) #現在のパスの下にあるすべての非ディレクトリのサブフォルダ 61 返すls_file 62 印刷(" ============開始、複数のファイルが、しばらくお待ちください... " ) 63 FC = FileCheck() 64- 65 fc.get_all_file() 66ファイル= FCを。 get_all_file() 67 #印刷(ファイル)のファイルは、完全なファイル名リスト入れている 68の ためのファイルでのファイル: 69 FILE_SIZE = fc.get_fileSize(ファイル) 70 file_timesの=のfc.get_file_Times(ファイル) 71 印刷(" {{} {} } " .format(ファイル、FILE_SIZE、file_times)) 72 を印刷(" 总时长:{}、H {} M {:3F} S " .format(INT(sum_time / 3600)、INT(sum_time%の3600 // 60)、sum_time%の3600%60))
主にmoviepyライブラリの使用は、ライブラリOSは指定されたディレクトリ内のすべてのmp4ファイルを取得する使用します
注:参考資料:https://blog.csdn.net/xiaomahuan/article/details/78783174