直接上程式碼,懶得多說
1 import colorama 2 colorama.init() 3 from colorama import Fore, Back, Style 4 import os 5 import re 6 7 class 路徑選擇器: 8 def __init__(self): 9 當前路徑 = '' 10 選擇集 = [] 11 路徑深度 = 0 12 13 def 選擇路徑(self): 14 pass 15 16 def 顛倒字串(self, 字串): 17 結果 = '' 18 for 字元 in 字串: 19 結果 = 字元 + 結果 20 return 結果 21 22 def 是純數字(self,字串): 23 if 字串 in ['a', 'z','e']: 24 return False 25 else: 26 字串長度 = len(字串) 27 匹配結果 = re.match('\\d+',字串) 28 if 匹配結果: 29 if len(匹配結果.group()) == 字串長度: 30 return True 31 else: 32 print('怎麼是字母數字混著來啊,不要亂考我,信不信當機給你看!!重新輸入') 33 return False 34 else: 35 print('你要啥??重新輸入') 36 return False 37 38 def 展示當前路徑下內容(self): 39 print('當前路徑: %s' % self.當前路徑) 40 self.選擇集 = os.listdir(self.當前路徑) 41 序號 = 0 42 for 選擇項 in self.選擇集: 43 序號 += 1 44 if os.path.isdir(self.當前路徑 + 選擇項): 45 print(Fore.YELLOW + str(序號) + '\t' + 選擇項 + Style.RESET_ALL) 46 elif os.path.isfile(self.當前路徑 + 選擇項): 47 print(Fore.GREEN + str(序號) + '\t' + 選擇項 + Style.RESET_ALL) 48 49 def 我的電腦(self): 50 驅動器列表 = [] 51 for 磁碟機代號 in range(ord('A'), ord('Z') + 1): 52 磁碟機代號根目錄 = chr(磁碟機代號) + ':\\' 53 if os.path.isdir(磁碟機代號根目錄): 54 驅動器列表.append(磁碟機代號根目錄) 55 self.選擇集 = 驅動器列表 56 self.當前路徑 = '' 57 self.路徑深度 = 0 58 序號 = 0 59 for 選擇項 in self.選擇集: 60 序號 += 1 61 print(Fore.YELLOW + str(序號) + Style.RESET_ALL + '\t' + 選擇項) 62 63 def 選擇單個檔案(self): 64 self.當前路徑 = '' 65 self.選擇集 = [] 66 self.路徑深度 = 0 67 已選到檔案 = True 68 while 已選到檔案: 69 使用者選擇 = input('[a]我的電腦|[序號]選擇第n項|[z]上級目錄|[e]退出') 70 if 使用者選擇 == 'a': 71 self.我的電腦() 72 elif self.是純數字(使用者選擇): 73 if 0 < int(使用者選擇) <= len(self.選擇集): 74 self.當前路徑 += self.選擇集[int(使用者選擇) - 1] 75 self.路徑深度 += 1 76 if os.path.isdir(self.當前路徑): 77 if self.當前路徑[-1] != '\\': 78 self.當前路徑 += '\\' 79 self.展示當前路徑下內容() 80 elif os.path.isfile(self.當前路徑): 81 print('您已選擇路徑: %s' % self.當前路徑) 82 已選到檔案 = False 83 return self.當前路徑 84 else: 85 print('os.path.isdir/file 識別失敗') 86 print('除錯 當前路徑: %s' % self.當前路徑) 87 else: 88 print('哥們兒輸的序號不對吧') 89 elif 使用者選擇 == 'z': 90 if self.路徑深度 > 1: 91 self.路徑深度 -= 1 92 self.當前路徑 = self.顛倒字串(re.sub('^.+?\\\\','',self.顛倒字串(self.當前路徑))) 93 if self.當前路徑[-1] != '\\': 94 self.當前路徑 += '\\' 95 self.展示當前路徑下內容() 96 elif self.路徑深度 == 1: 97 self.我的電腦() 98 else: 99 print('再上面就是上帝了吧?') 100 elif 使用者選擇 == 'e': 101 已選到檔案 = False 102 return None 103 104 105 106 if __name__ == '__main__': 107 選擇器 = 路徑選擇器() 108 選擇的路徑 = 選擇器.選擇單個檔案() 109 print('選擇完成,選擇的路徑為: %s' % 選擇的路徑) 110 input('按回車退出')