我在EventGhost中使用Python腳本來匹配目錄中的某些文件類型,並將它們移動到某些地方以供其他程序對其執行操作。這裏是整個腳本:使用Python匹配拆分RAR擴展
import shutil
import os
SubFileTypes = ('sub','srt','txt')
ZipFileTypes = ('rar','zip','7z','r0')
MediaFileTypes = ('mkv','avi','mp4','wmv')
DownloadName = ''.join(eg.event.payload)
FileName = os.path.basename(DownloadName)
isFolder = os.path.isdir(DownloadName)
eg.globals.tvzip = 'J:\\DL\\TVzip\\'
eg.globals.tvzipdir = eg.globals.tvzip+FileName+'\\'
eg.globals.tvproc = 'J:\\DL\\TVProc\\'
if isFolder == True:
os.mkdir(eg.globals.tvzipdir)
# print 'I\'m a folder!'
for root, dirs, files in os.walk(DownloadName):
for f in files:
if f.endswith(ZipFileTypes):
#print 'I\'m a zip file!'
shutil.copy(os.path.join(root,f),eg.globals.tvzipdir)
if f.endswith(SubFileTypes) or f.endswith(MediaFileTypes):
#print 'I\'m a subtitle or media file!'
shutil.copy(os.path.join(root,f),eg.globals.tvproc)
elif isFolder == False:
shutil.copy(DownloadName,eg.globals.tvproc)
eg.plugins.EventGhost.DisableItem(XmlIdLink(23))
# print 'I\'m NOT a folder!'
else:
print 'I dont know what I am!'
我遇到的具體問題是,我需要的是來自於一個分裂RAR格式每個.rX擴展匹配的能力。這些擴展名從r0開始,可以無限制地結束。他們至少是「r +兩位數」(r00,r01,r02等),但我認爲他們可以達到兩位數以上,儘管我不積極。
是否有某種方式可以改變我的ZipFileTypes列表以包含這些分割rar擴展?還是有另一種方式?
會''.r \ d \ d + $'或'\ .r \ d {2,} $'會更好嗎?這樣'.r1'將不匹配,因爲它總是至少2位數。 – FakeRainBrigand
取決於問題是否有一個用例,他們實際上會擁有不希望與'.r1'擴展名匹配的文件。這是更簡單,否則,使您的正則表達式更復雜只是意味着難以閱讀:) – lunixbochs