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
复制代码

 

posted @   急先锋小米  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示