python 在命令列中選擇檔案路徑的互動程式

急先锋小米發表於2024-04-06

直接上程式碼,懶得多說

python 在命令列中選擇檔案路徑的互動程式
  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('按回車退出')
View Code

相關文章