文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python提取文件名

2023-01-31 06:39

关注

   首先声明本人初涉python,由于是自学,而且课余时间比较琐碎,所以打算分主次两条线。主的一条线是看python教程,但是这样实在枯燥,所以又有了次的一条线,就是写一些小程序练练手,只想总结下所得,记录自己学习的历程。

   今天写的小程序是提取某文档目录下面的文件名,文档目录里有".txt"".jpg"".bmp"".rm"类型的文件,计划提取后缀名除".rm"以外的文件名并且去后缀,并且存到指定文本文档中,主要涉及到简单的模式匹配和文件操作。

import os
filenames=os.listdir('d:\\test\\')
out=open('names.txt','w')
flag=[]
for name in filenames:
    if '.txt'==name[-4:]:
        filenames[filenames.index(name)]=name[:-4]
        flag.append(True)
    elif '.jpg'==name[-4:]:
        filenames[filenames.index(name)]=name[:-4]
        flag.append(True)
    elif '.rm'==name[-3:]:
        filenames[filenames.index(name)]=name[:-3]
        flag.append(True)
    else:
        flag.append(False)
        continue
for name in filenames:
    if flag[filenames.index(name)]:
        out.write(name+'\n')
out.close()

   2中调用了OS中的函数,新建了filenames列表,存储原始文件名。涉及到路径问题,这里使用的是绝对路径,测试的文档目录在D盘。貌似有getcwd()方法能取得当前目录,但是我一般为了操作方便,还是会自己设置一个好操作的路径。

   3中也可以同理把存储的文档设置为指定路径,'w'表示写操作。

   4中新建了一个空列表,主要为了之后标记哪些是我们需要的文件名。

   第一个循环主要是为了修改filenames列表,通过匹配filenames的每个子元素,需要的就去掉后缀存储到filenames列表,并在相应的flag列表中标记True;不需要的就标记False。这里的filenames.index(name)表示的是name这一项在filenames列表中的下标。name[start:end]则使用的是字符串分片,start和end分别表示起始下标和结束下标。熟悉java或者c应该知道数组中第一项下标为0,这里python是类似的,但是python中同时也规定了最后一项下标为-1,以此向前类推。所以name[-4:]表示的是name后4个字符,然后与我们需要的后缀名进行比对。

   接着使用第二个循环结合flag列表进行文档写操作,最后关闭文档。python中比较蛋疼的是没有case语句,所以只能一遍遍使用if…else…。

   其实到这里我已经想到又一个问题了,如果目录中还有目录肿么办?好吧,明天还要实习上班,今天先洗洗碎了,明天我再好好考虑下。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯