• 我的第一个python程序--给2.x的print代码加上括号


      最近想学习一门脚本语言,综合考虑,选择了python.

      花了几天时间看完了 简明 Python 教程 ,想着应该写点什么东西才好,刚好我使用的是3.x版本,以前好多2.x的代码都直接报错,尤其是print语句,手动加()太蛋疼,遂起了写个自动加()的脚本的心思.

      先是在这里找到了 python 读取一个目录下的所有目录和文件 的代码,然后写了了个fixPrint的函数, 在原有代码的基础上加上了修复print的功能,不多说了,直接上代码:

    import os
    allFileNum = 0
    def printPath(level, path):
        global allFileNum
        '''
        打印一个目录下的所有文件夹和文件
        '''
        # 所有文件夹,第一个字段是次目录的级别 
        dirList = []
        # 所有文件
        fileList = []  
        # 所有文件 包含路径
        filePathList = []
        # 返回一个列表,其中包含在目录条目的名称(google翻译)
        files = os.listdir(path)
        # 先添加目录级别
        dirList.append(str(level))
        for f in files:
            if(os.path.isdir(path + '/' + f)):
                # 排除隐藏文件夹。因为隐藏文件夹过多
                if(f[0] == '.'):
                    pass
                else:
                    # 添加非隐藏文件夹
                    dirList.append(f)
            if(os.path.isfile(path + '/' + f)):
                # 添加文件
                fileList.append(f)
                filePathList.append(path + '/' + f)
        # 当一个标志使用,文件夹列表第一个级别不打印
        i_dl = 0
        for dl in dirList:
            if(i_dl == 0):
                i_dl = i_dl + 1
            else:
                # 打印至控制台,不是第一个的目录
                print ('-' * (int(dirList[0])), dl)
                # 打印目录下的所有文件夹和文件,目录级别+1
                printPath((int(dirList[0]) + 1), path + '/' + dl)
        for fl in fileList:
            # 打印文件
            print ('-' * (int(dirList[0])), fl)
            #fixPrint(fl)
            # 随便计算一下有多少个文件
            allFileNum = allFileNum + 1
        for fl in filePathList:
           fixPrint(fl)
    def fixPrint(path):
        file  = open(path,"r",encoding="utf-8")
        newLines = [];
        all_the_text = file.readlines( )
        for line in all_the_text:
            index = line.find("print")
            #检查当前行是否有print 同时是否已经有()了
            if(index>=0 and line[index+5:index+8].find('(')==-1):
                #对有print的数据进行处理,
                line = line.replace("print","print (") 
                if(line.find("
    ")>0):
                     line =  line.replace("
    "," )" +"
    ") 
                else:
                    line+=")"
            newLines.append(line)
        file.close()
    
         #直接覆盖掉原来的文件 
        newFile = open(path,"w",encoding="utf-8")
        for line in newLines:
          newFile.write(line)
        newFile.close()
    
    if __name__ == '__main__':
        printPath(1, "你的目标文件所在文件夹路径")
  • 相关阅读:
    websocket 初识
    JavaScript 系列博客(四)
    JavaScript 系列博客(三)
    JavaScript 系列博客(二)
    JavaScript 系列博客(一)
    前端(八)之形变
    前端(七)之动画与阴影
    java变量、数据类型
    js简单的获取与输出
    Eclipse字体修改
  • 原文地址:https://www.cnblogs.com/suijing/p/3784953.html
Copyright © 2020-2023  润新知