博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批处理文件
阅读量:6858 次
发布时间:2019-06-26

本文共 1177 字,大约阅读时间需要 3 分钟。

查找路径下指定文件名并返回

TARGETPATH = r'E:\\data'records = []for currentDir, _, includedFiles in os.walk(TARGETPATH):    if not currentDir.endswith('_capacity'): continue    else:        records.append(currentDir)  # 将以“capacity”结尾的文件夹名加入records        records.extend(includedFiles)  # 将该文件夹内的文件名列表扩展到records# 将records写入.csvcsvFile = open(os.path.join(TARGETPATH, 'capacity_all.csv'), 'w')csvFile.write(os.linesep.join(records))csvFile.close()# 将排序后的records写入.csvwith open(os.path.join(TARGETPATH, 'capacity_all.csv'), 'w') as csvFile:    csvFile.write('\n'.join(sorted(records)))
  • os.walk()返回Directory tree generator。每次生成格式为(dirpath, dirnames, filenames) 的tuple,元素依次是当前路径、当前路径下文件夹列表、当前路径下文件名列表。
  • list的.append()、.extend()和.sort()方法都是原地修改,sorted()函数不是。
  • 将list写入.txt文件时需要把list转为str,直接用str()函数强转会很丑,用换行符连接list每个元素会好看很多。
  • os.path代表系统换行符,windows下为”\r\n”,其他系统多是”\n”。然而无论是用os.path还是”\n”连接列表元素,最后用windows记事本打开都一样换行,但是用vs code打开的话os.path会多换一行即看上去一行间一行,这里面到底为啥有点说到,可能和Python的write机制有关,暂时不深究(留坑)。
  • 关于文件读写,大多数资料推荐with as形式,确实更简洁一点 

说os.walk()暴力是因为它真的按照目录树遍历了所给路径中的所有文件夹和文件,文件量大而所要找的文件名少的情况下会慢一些(其实我觉得慢不了多少),用os.listdir()写成递归函数的话执行效率可能会高一些,但是os.walk()逻辑简单好写。

转载于:https://www.cnblogs.com/luban/p/9417432.html

你可能感兴趣的文章
每天一个知识点linux(二)关机重启命令
查看>>
以程序的方式操纵NTFS的文件权限(下)
查看>>
LVM逻辑卷管理
查看>>
zabbix与nagios对比
查看>>
MySQL源码安装完成后修改安装路径启动问题
查看>>
合并下载的Solaris镜像为DVD文件的方法
查看>>
设计ShartPoint的组织结构和成员
查看>>
shell编程入门步步高(一、shell简介)
查看>>
一个简单的HQL优化
查看>>
从股价说起 百神大战凸现百度与腾讯阿里差距
查看>>
MariaDB六之主从复制
查看>>
outlook cannot send this item
查看>>
【Win7下Android native code的编译和调试】
查看>>
【iOS-cocos2d-X 游戏开发之十】自定义各类模版&触屏事件讲解!
查看>>
域环境下如何保护重要资料文件的安全(二)---IRM&RMS(下)
查看>>
服务器升迁架构.png
查看>>
不能联系xx域的域控制器
查看>>
生产网络做portfast等配置对网络的影响
查看>>
Connection is read-only. Queries leading to data modification are not allowed
查看>>
LeetCode - 43. Multiply Strings
查看>>