直接上代码,懒得多说
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
标签:python,self,路径,选择项,选择,字符串,命令行,print,交互 From: https://www.cnblogs.com/jichao1515/p/18117820