首先声明本人初涉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…。

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

python提取文件名的5-6位_python提取文件名相关推荐

  1. python输出字符串的后两位_Python字符串三种格式化输出

    字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助. 格式化输出:内容按照一定格式要求进行输出. 1.使用占位符%输出 python2.6版本之 ...

  2. python四舍五入保留小数点后三位_Python中的“正确”四舍五入到小数点后3位

    我可能遗漏了一些重要的东西,但我无法找到一种方法来在Python(2.7)中将浮点/小数"适当"舍入,至少舍入到小数点后三位.我的意思是1.2225应该四舍五入到1.223,而1. ...

  3. python提取包含特定字符串的行_python提取具有某种特定字符串的行数据方法

    今天又帮女朋友处理了一下,她的实验数据,因为python是一年前经常用,最近找工作,用的是c,c++,python的有些东西忘记了,然后就一直催我,说我弄的慢,弄的慢,你自己弄啊,烦不烦啊,逼逼叨叨的 ...

  4. python 取字符串的最后一位_python如何截取字符串最后的几位数字

    字符串切片也就是截取字符串,取子串. Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引-1内的字符串 步长不指定时步长为1,字符串[开始索引:结束索引] ...

  5. python读取log文件生成图形表_python提取log文件内容并画出图表

    之前在excel里面分析log数据,简直日了*了. 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用. 日志内容大致如下 2016-10-21 21:07:59 ...

  6. python提取xml的所有框坐标_python 提取批量xml文件中的坐标信息存入txt文件 xml文件转txt文件...

    读取多个xml文件中的坐标信息:xmin.xmax.ymin.ymax(实际为一个矩形框的坐标值),并通过简单的计算得到矩形框的长.宽,最后按照自己的需求读入到一个txt文档中 xml文件目录及文件如 ...

  7. python 取字符串的最后一位_python中获得一个字符串最后出现位置 | 学步园

    def lastpos(findstr,mystr): #gp.AddMessage("查询=======:"+findstr+","+mystr) num=l ...

  8. python获取视频帧的时间_Python提取视频中图片的示例(按帧、按秒)

    一.按帧提取 #coding=utf-8 import os import cv2 def save_img(): #提取视频中图片 按照每帧提取 video_path = r'D:\\test\\' ...

  9. python 二维码_Python提取支付宝和微信支付二维码

    本文首发于我的个人博客,更多 Python 和 django 开发教程,请访问 追梦人物的博客. 支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二 ...

最新文章

  1. Docker运行PostgreSQL
  2. MTK6515 android打版软件配置(DrvGen.exe 使用)
  3. dataframe在groupby之后,选其中的某列作为画图的新index
  4. JVM之GCRoots概述
  5. webcomponents安装了没有用_Web Components 入门实例教程
  6. [JMX一步步来] 7、用JDK5.0的JConsole来连接MBean
  7. css 商城 两列_【云控基础】HTML+CSS基础入门
  8. (四)在MLOps管道中进行持续训练
  9. mysql创建复杂表_数据库_MySQL_复杂的表结构创建
  10. linun开启oracle监听,Linux下配置Oracle监听器
  11. 判断数据是增量分区全量分区
  12. 【运动学】基于matlab GUI模拟鱼类目标追击问题【含Matlab源码 166期】
  13. 用Quartus仿真计数器模块:
  14. 东方通(tongweb)部署
  15. Hongda -接小球游戏
  16. 秦牧鸿蒙之体有什么用,第一五一二章 鸿蒙元气
  17. C语言二级题库(刷题软件+60套真题+填空题+大题)2022年9月份新题第三套
  18. Netbackup5230备份一体机重删率异常故障分析日志收集
  19. keras使用plot_model绘制网络模型图
  20. 安卓中图片占用内存大小分析

热门文章

  1. sql 之like 和通配符%,_(mysql)
  2. 服务器2008 系统日志 提示打印机,介绍服务器日志出现打印机错误的解决方法
  3. linux如何调试elf程序,Linux应用程序elf描述
  4. php 读取三级分类,php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?汗血宝马...
  5. python程序题斐波那契数列_Python_经典题_斐波那契数列
  6. 不同声音的传播速度会一样吗?
  7. 新世纪英汉词典 | 今日最佳
  8. 【10.29周一电商,已好】中国日历的至高境界,377张震撼级插画,美到爆!
  9. php psr 编码规范_PHP之PSR-4规范:自动加载
  10. sql 多表多行模糊查询_从零开始学习SQL(五)多表查询