日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

合并百度影音的离线数据 with python 第二版 基于yield

發布時間:2025/3/15 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 合并百度影音的离线数据 with python 第二版 基于yield 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

重新整理了一下代碼。

增加了bdv,mkv的處理流程。

目前暫時支持windows平臺。

bdv,mkv,rmvb的不同處理流程

# -*- coding: UTF-8 -*-import os import io import sys import string import shutil import codecsdef read_bdv_index(filename): piece_list= list() objFile = codecs.open(filename,'r','utf-8') for line in objFile:if(line[0:4] != 'file'):continue;strings = string.split(line,'/')tarfile = strings[len(strings)-1] tempText = string.strip(tarfile)piece_list.append(tempText)objFile.close() return ('avi',piece_list) def read_bdv_file(filename):piece_list= list()piece_list.append('*.bdv_*')return ('avi',piece_list)def read_rmvb_file(filename):piece_list= list()piece_list.append('*.rmvb_*')return ('rmvb',piece_list)def read_mkv_file(filename):piece_list= list() piece_list.append('*.mkv_*')return ('mkv',piece_list)

執行代碼:

# -*- coding: UTF-8 -*-import os import io import codecs import string import shutil import moviefmtdef coroutine(func):def start(*args,**kwargs):g = func(*args,**kwargs)g.next()return greturn start@coroutine def enum_movie_file(target): selectedFolder = (yield)for fileitem in os.listdir(selectedFolder): targetFO = os.path.join(selectedFolder,fileitem) if(os.path.isfile(targetFO) == True):continue; target.send(targetFO) @coroutine def read_movie_file(funcDisp,target):while(True):filmFolder = (yield)for fileitem in os.listdir(filmFolder): targetfile = os.path.join(filmFolder,fileitem) if(os.path.isfile(targetfile) == False):continue;filebasename , fext = os.path.splitext(fileitem); if(funcDisp.has_key(string.lower(fext))):pfn = funcDisp[string.lower(fext)];outputs = filmFolder,filebasename, pfn(targetfile);target.send(outputs)break@coroutine def create_report(outputfile):objTar = codecs.open(outputfile,"w+") while(1):filmFolder,filebasename,(extname,piece_list) = (yield)if(extname == None) : break;objTar.write('cd \"%s\"\r\n' % filmFolder) objTar.write('copy /b ') if(len(piece_list) == 1):objTar.write('%s ' %(piece_list[0].encode('gbk'))) else: bFirst = Truefor line in piece_list:if(bFirst == False):objTar.write('+%s' %(line.encode('gbk'))) else:objTar.write('%s' %(line.encode('gbk'))) bFirst = FalseobjTar.write(' ..\%s.%s\r\n' %(filebasename,extname)) objTar.write('cd ..\r\n')objTar.close() if __name__ == '__main__': funcDisp = dict()funcDisp['.bdv_0000']= moviefmt.read_bdv_file;funcDisp['.rmvb_0000']= moviefmt.read_rmvb_file;funcDisp['.mkv_0000']= moviefmt.read_mkv_file;funcDisp['.bdv']= moviefmt.read_bdv_index; try:rmf = enum_movie_file(read_movie_file(funcDisp,create_report('film.bat')))rmf.send(os.getcwd())rmf.close()except Exception as exc: print("%s" % exc); print("done");

  

  

?

轉載于:https://www.cnblogs.com/febwave/p/3161801.html

總結

以上是生活随笔為你收集整理的合并百度影音的离线数据 with python 第二版 基于yield的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。