利用python对某一文件夹中的某一类型文件进行汇总查询、创建、删除(以csv为例)

本文介绍了一款Python脚本,该脚本利用os模块实现文件夹内.csv文件的查询、创建与删除功能。通过简单的用户交互,脚本提供了一个实用的文件管理解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行python练习中,利用os模块里面的os.listdir(path)与os.remove(path+文件名)可以对文件夹里的文件进行查询和删除操作,这次利用csv为例写了一个汇总查询、创建、删除的功能脚本,加上上一篇博客也算半个工程了,同样以防以后用到,放到博客记录一下,运行方法:直接复制到IDLE新建的file中,保存运行即可,也希望看到我文章的大牛给予指导。

#find.csv.py
import os
import string
class selfdefineError(Exception):pass#自定义异常
def count_lst(packagename):
    all_list=[]
    i=1
    try:
        all_list=os.listdir('{0}'.format(packagename))#进入用户指定的文件夹
    except:
        print("文件路径错误!")
    else:
        chose={}
        for nlist in all_list:
            if nlist.endswith(".csv"):#选取以.csv结尾的文件放入字典中
                chose[i]=nlist
                i+=1
        if chose:
            for m in chose.keys():
                print("{0}:{1}".format(m,chose[m]))
        else:
            print("此文件夹中没有.csv文件")
        return chose
    return -1
def checkdict(lstlist,packagename):
    t=0
    while True:
        filename=input("请你输入需要选择的文件名:(格式为:xxx.csv)")
        if not filename.endswith(".csv"):
            filename+=".csv"#用户未添加.csv则自动添加
        for nlist in lstlist.values():
            if filename==nlist:
                print("文件夹中已经有此文件,无需再次创建!")#判断文件夹是否有相同名的文件
                lstlist=count_lst(packagename)
                choice=input("[Q]uit [D]elete请输入你的选择:")
                try:
                    if choice in ("Q","q"):
                        break
                    elif choice in ("D","d"):
                        delt(packagename,lstlist)                      
                    else:
                        raise selfdefineError()
                except selfdefineError:
                     print("请输入A、a、Q、q、D、d、S、s")
        k=input("是否进入创建界面(y/n):")
        if k in ("Y","y"):
            choice=input("[A]dd [Q]uit [D]elete [S]ave请输入你的选择:")#若没有相同的文件则跳入创建新文件界面,包含删除、退出、添加、保存操作
            try:
                if choice in ("A","a"):
                    t+=1
                    add(packagename)
                    lstlist=count_lst(packagename)
                elif choice in ("Q","q"):
                    break
                elif choice in ("D","d"):
                        delt(packagename,lstlist)
                        t-=1
                elif choice in ("S","s"):
                    print("保存成功,此次操作共保存了{0}个文件".format(t))
                    break
                                
                else:
                    raise selfdefineError()
            except selfdefineError:
                    print("请输入A、a、Q、q、D、d、S、s")
        else:
            break
                                                                                    
                
def add(packagename):
    name=input("请输入文件名:")
    if not name.endswith(".csv"):
        name+=".csv"
    path=packagename+"\\"+name
    text=open("{0}".format(path),"w+")
    text.close()
    print("创建成功!")
def delt(packagename,lstlist):
    if not lstlist:
        print("文件夹中没有.csv文件")
    while True:
        count_lst(packagename)
        delnum=int(input("请输入你想要删除的文件编号:"))
        delname=lstlist[delnum]
        delpath=packagename+"\\"+delname
        if delnum not in lstlist.keys():
            print("请输入正确的序号")
            continue
        os.remove(delpath)
        count_lst(packagename)
        print("删除成功")
        break
def main():
    while True:
        packagename=input("请输入你想要选择的路径文件夹:[直接回车退出](格式为X:\\xx\\xx)")
        if packagename:
            lstlist={}
            lstlist=count_lst(packagename)
            if lstlist!=-1:
                checkdict(lstlist,packagename)
        else:
            break
if __name__=='__main__':
    main()




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值