zoukankan      html  css  js  c++  java
  • 批处理文件

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

    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写入.csv
    csvFile = open(os.path.join(TARGETPATH, 'capacity_all.csv'), 'w')
    csvFile.write(os.linesep.join(records))
    csvFile.close()
    
    # 将排序后的records写入.csv
    with open(os.path.join(TARGETPATH, 'capacity_all.csv'), 'w') as csvFile:
        csvFile.write('
    '.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下为” ”,其他系统多是” ”。然而无论是用os.path还是” ”连接列表元素,最后用windows记事本打开都一样换行,但是用vs code打开的话os.path会多换一行即看上去一行间一行,这里面到底为啥有点说到,可能和Python的write机制有关,暂时不深究(留坑)。
    • 关于文件读写,大多数资料推荐with as形式,确实更简洁一点 

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

  • 相关阅读:
    解析python数据后用html输出
    python 自动化测试HTTP接口
    python 自动化对比返回结果
    Java 基础知识 练习
    Java 菜鸟学习之 script脚本语句
    java语言的认识
    Script 语言的简单练习题 乘法口诀
    Script 简单语句的练习题
    Java菜鸟培训第二天
    36个号码随机摇奖编码
  • 原文地址:https://www.cnblogs.com/luban/p/9417432.html
Copyright © 2011-2022 走看看