Python文件操作系统开发实验

Python文件操作系统开发实验

一、实验要求:

  1. 默认进入当前工作目录中。并且把目录中的内容(文件跟文件夹)进行输出。每个内容前需要加上序号。如果是文件夹的话需要在名字前加上\
  2. 用户可以进行输入文件序号
  3. 用户选择的序号如果是文件夹则打开该目录并且输出该目录下的内容
  4. 用户选择的序号如果是文件则把该文件的内容输出
  5. 用户如果选择的是目录,则在该目录下继续之前的操作
  6. 用户选择的是文件,输出内容后,返回到当目录操作

   进阶要求:

  1. 用户除了输入序号外,还可以输入特殊字符进行操作。比方:'..':返回上级目录。'~':返回默认工作目录
  2. 用户可以使用命令模式进行文件的操作。比如:
    1. '-r 文件序号': 把该序号的文件删除
    2. '-c 文件序号 文件路径': 把文件序号中的文件复制到路径中
    3. '-m': 进入文件创建模式
    4. '-up 文件序号': 进入文件更新模式。选择文件内容输出,并且让用户输入追加的内容

二、实验步骤:

1.    编写代码:


import os
from shutil import copy
#定义一个文件系统主函数
def dirSystem(path):
    # 定义一个输出目录列表的函数
    def showDirList(file_lst, path):
        listLen = len(file_lst)
        print('='*15+'目录"'+path+'"的内容列表'+'='*15)
        #根目录则输出这条
        if(path==os.getcwd()):
            print('这是根目录了')
        #否则输出这条
        else:
            print('../: 返回上一层')
        # 遍历输出目录列表
        for d,i in zip(file_lst, range(listLen)):
            if os.path.isdir(path+'\\'+d):
                i=i+1
                print(i,':','\\'+d)
            else:
                i=i+1
                print(i,':', d)
        else:
            #添加退出程序选项
            print(len(file_lst)+1,': 退出')
            print('='*15+'文件列表结束'+'='*15)
            
            
            
    # 1.2 获取工作目录下所有内容信息
    file_lst = os.listdir(path)
    
    # 2 调用输出目录列表的函数
    showDirList(file_lst, path)
    
    # 3.1 用户输入
    o1=str(input('请输入选择序号或操作代码:'))
    
    if o1.isdigit():
        o = int(o1)
        listLen =len(file_lst)
        #判断选项是否是关闭程序
        if listLen+1 == o:
            print('关闭程序')
            exit()

        #否则继续执行打开文件

        elif (o<listLen and o>0) or (listLen==1 and o==1):

            # 3.2 通判断用户输入的序号的文件是否为文件夹,然后使用不同的方法打开
            if os.path.isdir(path+'\\'+file_lst[o-1]):
                # 对操作目录进行重新赋值
                path= path+'\\'+file_lst[o-1]
                # 4.2 如果用户输入的序号是一个文件夹,则把该目录中的内容打印出来
                file_lst=os.listdir(path)
                # 因为用户选择的是一个文件夹,所以需要继续之前的操作
                dirSystem(path)
            else:
                #读取文件并打开
                with open(path+'\\'+file_lst[o-1],encoding='gbk') as f:
                    print(f.read())
                    #读取完毕返回当前目录
                    dirSystem(path)
        else:
            print('='*15+'操作错误请重试'+'='*15)
            dirSystem(path)
    else:
        #判断选项是否是返回上级
        if o1=='..':
            #查找路径中最后一个'\'的位置
            pInt = path.rfind('\\')
            #截取上级目录
            path = path[0:pInt]
            print('='*15+'正在返回上级'+'='*15)
            #返回最初
            dirSystem(path)
        elif o1=='~':
            #返回最初路径
            dirSystem(os.getcwd())
        #删除操作
        elif o1.find('-r')!=-1 and o1[3:len(o1)].isdigit():
            o = int(o1[3:len(o1)])
            if os.path.isdir(path+'\\'+file_lst[o-1]):
                os.rmdir(path+'\\'+file_lst[o-1])
                print('删除完成')
                dirSystem(path)
            else:
                os.remove(path+'\\'+file_lst[o-1])
                print('删除完成')
                dirSystem(path)
                
        #追加操作
        elif o1.find('-up')!=-1 and o1[4:len(o1)].isdigit():
            o = int(o1[3:len(o1)])
            with open(path+'\\'+file_lst[o-1],"a") as f:    
                zjStr=str(input('请输入追加的文本:'))
                f.write(zjStr)
                print('追加完成')
            dirSystem(path)
            
        elif o1=='-m':
            zjStr=path+'\\'+str(input('请输入要创建的文件名'))
            with open(zjStr,"w") as f:
                xrStr=str(input('请输入写入的内容:'))
                f.write(xrStr)
                print('创建完成')
            dirSystem(path)
            
        #and o1.count(' ')==2
        elif o1.find('-c')!=-1  and o1[3:o1.rfind(' ')][0:o1.rfind(' ')].isdigit():
            o = int(o1[3:o1.rfind(' ')][0:o1.rfind(' ')])
            lj = o1[o1.rfind(' ')+1:len(o1)]
            if os.path.isdir(lj) and os.path.exists(lj):
                copy(path+'\\'+file_lst[o-1],lj)
                print('拷贝完成')
                dirSystem(path)
            else:
                print('='*15+'操作错误请重试'+'='*15)
                dirSystem(path)
        else:
            print('='*15+'操作错误请重试'+'='*15)
            dirSystem(path)
            
            
#路径赋初始值
path = os.getcwd()
#调用文件管理系统方法
dirSystem(path)


                
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python 版 LIMS(实验室信息管理系统)是一个基于 Python 编写的实验室信息管理系统。Python 版 LIMS 以计算机技术为基础,为实验室提供信息化管理服务。Python 版 LIMS 可以用于实验室的采样、检测、数据管理与报告发布等流程。Python 版 LIMS 的主要功能包括样品管理、质控管理、数据管理与查询、统计分析与报告输出等。 在 Python 版 LIMS 的样品管理模块中,用户可以创建样品信息、样品分类、样品属性和样品流转信息等。样品分类包括样品种类、样品来源、样品状态等。在 Python 版 LIMS 的质控管理模块中,用户可以设置质控规范和质控样品的信息。在数据管理与查询模块中,用户可以通过输入样品编号、采样日期、检测项目、检测结果等关键信息来查询与管理检测数据。在统计分析与报告输出模块中,Python 版 LIMS 可以自动对检测数据进行计算、统计和图形输出,有效实现检测数据的管理、分析和应用。 相比传统的实验室管理方式,Python 版 LIMS 易于实现、性能稳定、操作简单易学、管理数据准确可靠,可以大大提高实验室管理效率,为实验室管理工作提供有力支持。 ### 回答2: Python版的LIMS是一个基于Python语言开发实验室信息管理系统。Python 是一种高级编程语言,学习门槛底,开发效率高。在LIMS开发过程中,Python可以提供许多强大的功能和工具,比如提供语言和平台的各种API,可以访问数据库,进行日志记录和文件IO操作,完成各种开发任务。此外,Python社区提供了许多开源库和框架,能够让我们更快地开发出高质量的LIMS系统。 Python版LIMS系统可以管理实验室的各种信息,包括实验室设备管理、实验步骤记录、实验数据管理、实验员工管理、项目管理等等。这些信息可以通过一个简单的界面进行操作,并且可以向用户提供可视化的数据分析和报告生成功能。另外,Python LIMS系统还提供了一个数据接口,用于和其他系统数据的整合和分析,支持多层级数据查询和分析。 此外,Python作为一种开源语言,其社区提供了丰富的资源和文档,可以帮助开发者更快速地学习和掌握Python LIMS系统的开发方法和技巧。因此,Python LIMS系统可以为实验室提供全面的数据管理和分析服务,在实验室工作中起到非常重要的作用。 ### 回答3: Python版LIMS是一款基于Python语言开发实验室信息管理系统。它主要通过信息化技术实现对实验室数据的管理、分析和共享,使实验室管理者更好地掌握实验室内的各种信息,提高实验室管理效率和实验安全性。 Python版LIMS能够方便实验室工作人员快速记录并查询实验数据,还能够生成各种样品仪器数据模板,方便实验室共享,同时也有利于实验室管理人员对实验室人员和设备的管理。Python版LIMS还可以轻松实现实验室质量管理体系与ISO17025标准紧密结合,能够提供完备的质量控制与溯源管理。 此外,Python版LIMS充分利用Python语言的优点,如简单直观、易于阅读等特性,开发出一系列高效、灵活、易用性功能强大的模块,能够满足实验室管理的各种需求,提高实验室人员的工作效率和信息管理水平。 总之,Python版LIMS是一个非常优秀的实验室信息管理系统,其优秀的特性和功能,能够方便实验室管理人员的日常管理、实验室人员的工作、以及实验的质量控制与改善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值