ビデオがいっぱいのフォルダがあります。それらのうちのいくつかはオーディオを持ち、他はミュートです(文字通りオーディオストリームはありません)。 私が作った小さなプログラムで私の目標は、オーディオなしのビデオをgifsという名前のフォルダに移動することです。(python3.6)ビデオファイルからオーディオデータを確認して効果的に移動する方法
質問:私はどのように最適化できますか?私は私が何か間違ったことをやっているなら、私に教えて気軽にStackOverflowのために新たなんだ*
from subprocess import check_output
from os.path import join,splitext
from os import rename,listdir
from shutil import move
def noAudio(path):
cmd =("ffprobe -i {0} -show_streams -select_streams a -loglevel error".format(path))
output = check_output(cmd,shell=True)
boolean = (output == b'')
return boolean
def del_space(file):
rename(join(src,file),join(src,file.replace(' ','')))
Newf = file.replace(' ','')
return Newf
def StoreNoAudio(src,dist):
target = [".mp4",".MP4",".gif"]
GifMoved = 0
print("processing...")
for file in listdir(src):
direction,extension = splitext(file)
try:
if extension in target:
#find space related errors and correct them
if ' ' in file:
file = del_space(file)
path = join(src,file)
distination = join(dist,file)
#move file without audio streams
if(extension == '.gif' or noAudio(path) == True):
move(path,distination)
GifMoved += 1
except Exception as e:
print(e)
print('Mute videos moved:',GifMoved)
print('finished!')
dist = (r"C:\Users\user\AppData\Roaming\Phyto\G\Gif")
src = (r"C:\Users\user\AppData\Roaming\Phyto\G\T")
StoreNoAudio(src,dist)
:
は、ここでは、progammです。
本当に素敵な、実行時間が3秒に15秒から行ってきました! – Clayden
移動したファイルを追跡しようとしたとき: GifMoved = sum(pool.map(process_file、listdir(src))) このエラーが発生しました:TypeError:サポートされていないオペランドの型が+: ' int 'と' NoneType ' – Clayden
関数がint(0または1)を返すようにしてください。 – Dietmar