만화 파일을 받았더니 파일이름 들이 'XXX (##).jpg' 등으로 되있어서 만화 보는 프로그램에서 순서대로 보여주질 못한다. 나중에 만화 보는 프로그램이나 하나 만들어야 겠다.
우선 아쉬운대로 파일이름들을 내 입맛대로 바꿔 주는 스크립트을 하나 만들었다.
Line 63 언저리의 파싱해서 파일 만드는 부분과 Line 84 언저리의 이름 바꾸기 적당히 고치면 언제나 빠르게 바꿀 수 있겠다.
todo.
현재 선택 저장.
파일 변환 규격화.
GUI Modify
zip 파일에서 풀어서 변환하고 재압축
1 import Tkinter 2 import Tkconstants 3 import tkFileDialog 4 import tkMessageBox 5 import os, sys 6 7 __author__ = 'pn_jkim' 8 9 class TkFileDialogExample(Tkinter.Frame): 10 11 _workingDirectory = r'' 12 _isTested = False 13 _fileList = [] 14 15 def __init__(self, root): 16 17 Tkinter.Frame.__init__(self, root) 18 19 # options for buttons 20 button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5} 21 22 # define buttons 23 Tkinter.Button(self, text='Select Directory', command=self.askdirectory).pack(**button_opt) 24 Tkinter.Button(self, text='Test rename', command=self.testRename).pack(**button_opt) 25 Tkinter.Button(self, text='Run Rename', command=self.runRename).pack(**button_opt) 26 27 # defining options for opening a directory 28 self.dir_opt = options = {} 29 options['initialdir'] = os.getcwd() 30 options['mustexist'] = True 31 options['parent'] = root 32 options['title'] = 'This is a title' 33 34 def askdirectory(self): 35 36 """Returns a selected directoryname.""" 37 38 self._workingDirectory = tkFileDialog.askdirectory(**self.dir_opt) 39 print self._workingDirectory 40 41 _isTested = False 42 43 return self._workingDirectory 44 45 def testRename(self): 46 47 """Rename Test.""" 48 49 if self._workingDirectory == r'': 50 tkMessageBox.showwarning('Warning', 'Please Select Directory.') 51 return 52 53 try: 54 os.chdir(self._workingDirectory) 55 except: 56 tkMessageBox.showwarning('Error', "Cannot go to this directory\n(%s)" % self._workingDirectory ) 57 self.defaultsetting() 58 return 59 60 for filename in os.listdir(self._workingDirectory): 61 try: 62 name, tmp = filename.split('('); 63 number, tmp = tmp.split(')'); 64 tmp, ext = os.path.splitext(filename) 65 name2 = name.strip() + '_' + number.zfill(4) + ext 66 self._fileList.append((filename, name2)) 67 except: 68 print 'split error', '====>', filename 69 70 self._isTested = True 71 return 72 73 def runRename(self): 74 75 """Run Rename.""" 76 77 if self._isTested == False: 78 tkMessageBox.showwarning('Warning', 'Should Test First.') 79 return 80 81 for matching in self._fileList: 82 try: 83 print '[RENAME]', matching[0], '=>', matching[1] 84 #os.rename(matching[0], matching[1]) 85 except: 86 tkMessageBox.showwarning('Error', "Rename Error\n(%s, %s)" % matching[0], matching[1] ) 87 88 return 89 90 91 def defaultsetting(self): 92 _workingDirectory = r'' 93 _isTested = False 94 _fileList = [] 95 return 96 97 if __name__=='__main__': 98 root = Tkinter.Tk() 99 TkFileDialogExample(root).pack() 100 root.mainloop()
댓글