在进行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()