首页 > 编程语言 >python 在命令行中选择文件路径的交互程序

python 在命令行中选择文件路径的交互程序

时间:2024-04-06 19:58:33浏览次数:26  
标签:python self 路径 选择项 选择 字符串 命令行 print 交互

直接上代码,懒得多说

  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

相关文章

  • 1、你好,Python
    快速介绍Python语法、变量赋值和数字!这门课程涵盖了你在使用Python进行数据科学时所需的关键Python技能。该课程适合有一些先前编码经验的人,希望将Python添加到他们的技能库中。(如果您是第一次编码,建议您查看我们的编程入门课程,该课程专为完全初学者设计,希望开始使用Python。)......
  • Python常用算法--排序算法【附源码】
    应用具体python案例方式展示各种排序的要点,特别是希尔排序、插入排序、选择排序、冒泡排序、堆排序、快速排序、归并排序七个具体的排序算法。一、希尔排序:解释:希尔排序(ShellSort)是一种插入排序的改进版本,也被称为缩小增量排序。希尔排序通过比较相距一定间隔的元素,将大间隔......
  • 让工作自动化起来!无所不能的Python
    让工作自动化起来!无所不能的Python让工作自动化起来!无所不能的Python编辑推荐内容简介作者简介前言为什么要写这本书读者对象如何阅读本书博主默语带您GotoNewWorld.✍个人主页——默语的博客......
  • 国科大Python编程基础--编程基础Chapter02
    ......
  • 编程小白必须知道的 15 个强大的 Python 单行代码
    这里写目录标题三元运算符为多个变量赋值交换变量的值交换列表中的元素替换列表中的元素列表推导式与三元运算结合使用列表推导式从列表创建子列表更改列表元素类型使用列表推导式输出文件列表平展多维列表字典推导式集合推导式将文件读入生成器使用Python-c命令的单......
  • 使用 5 行 Python 代码拆分或合并 PDF 文件
    目录:拆分PDF文件合并PDF文件如果希望从大型PDF文件中提取特定页面或将多个PDF文件合并为一个文件,可以使用一些PDF编辑器来完成,但是你可能会发现拆分或合并功能在很多免费版PDF编辑工具中通常不可用。在本文中,我将分享一个简单的解决方案,用几行Python代......
  • Python 潮流周刊第 45 期(摘要)+ 赠书 5 本《Python语言及其应用(第2版)》
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。周刊全文:https://pythoncat.top/posts/2024-04-06-weekly特别提醒:本期赠书5......
  • 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel
    Python插入100万条数据到MySQL数据库步骤一:导入所需模块和库首先,我们需要导入MySQL连接器模块和Faker模块。MySQL连接器模块用于连接到MySQL数据库,而Faker模块用于生成虚假数据。importmysql.connector#导入MySQL连接器模块fromfakerimportFaker#导入......
  • Python 语法检查、格式化工具 Ruff 的各项配置
    一、配置文件1.1配置文件的位置和优先级Ruff支持pyproject.toml、ruff.toml和.ruff.toml三种文件(同时出现时,右边的优先级高);最近的配置文件生效,父级的将被忽略;可使用extend继承其他配置;命令行指定参数时,会覆盖配置文件中的选项(即命令行优先级更高);可使用target-ver......
  • 入门级Python编程题(6)
    题目描述现在有 �t 毫升肥宅快乐水,要均分给 �n 名同学。每名同学需要 22 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 33 位),以及一共需要多少个杯子。输入格式输入一个实数 �t 和一个正整数 �n,使用空格隔开。输出格式输出两行。第一行输出......