流程:

  1.获取前端的文件

  2.判断文件是否zip文件

  3.解压压缩包并保存

  4.遍历解压后的文件夹

  5.判断文件是否py文件,将绝对路径添加到列表

  6.循环列表,排除注释和空号,统计行数

from flask import Blueprint
from flask import render_template
from flask import request
from flask import current_app
import time
import os
import shutil uploadBlue = Blueprint("uploadBlue",__name__) @uploadBlue.route("/upload",methods=["GET","POST"])
def upload():
error = ""
if request.method == "POST":
# 获取前端的上传的文件
file = request.files.get("file")
# 判断后缀是否zip的文件
zip_file = file.filename.rsplit(".",1)
if zip_file[-1] != "zip":
return render_template("upload.html", error="上传的不是zip文件,请重新上传") # 解压保存
t = int(time.time())
upload_path = os.path.join(current_app.config.root_path,"files",str(t))
try:
shutil._unpack_zipfile(file,upload_path) # 解压文件
except Exception as e:
print(e)
shutil.rmtree(upload_path) # 删除非空文件夹
return render_template("upload.html", error="文件解压异常") # 遍历保存的文件夹得到所有.py文件
file_list = []
for (dirpath,dirname,filenames) in os.walk(upload_path):
# 判断文件是否py结尾,如果是则将绝对路径添加到列表
for file in filenames:
if file.rsplit(".",1)[-1] == "py":
file_path = os.path.join(upload_path,file)
file_list.append(file_path)
num = 0
for pyfile in file_list:
with open(pyfile,mode='rb') as f:
for line in f:
# 井号开头或者空行则跳过
if line.replace(b" ",b"").strip().startswith(b"#") or not line.strip():
continue
num += 1
return str(num) return render_template("upload.html",error=error)

Flask统计代码行数的更多相关文章

  1. Eclipse统计代码行数

    开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现. 步骤: 1.在Package Explorer中选中需要统计的包: 2.单击菜单Search-->File ...

  2. 在Flash Builder或者Eclipse统计代码行数的方法

    在Flash  Builder或者Eclipse统计代码行数的方法如下图菜单栏--搜索--搜索文件

  3. 【Linux】常用命令-统计代码行数

    公司人员流动大,经常有新的维护任务,交接时喜欢看看新来的模块的代码量,那么问题来了, 如何统计代码行数? 1,最先想到的肯定是 wc. wc -l *.h 将查看[当前目录]下头文件的代码行数,输出结 ...

  4. c#统计代码行数

    小编,已经快学了两年编程了.昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码行数.老规矩,先上图. 比较惭愧,写了两年只有2万多行.那我们还是进入下一项吧. 界面搭建我 ...

  5. 【未解决】对于使用Windows的IDEA进行编译的文件,但无法在Linux系统中统计代码行数的疑问

    在我学习使用Windows的IDEA的过程中,将代码文件转移到Linux虚拟机当中,但无法在Linux系统中统计代码行数. 注意:拷贝进虚拟机的文件均能编译运行. 具体过程如下: root@yogil ...

  6. Visual Studio 统计代码行数

    介绍一种简单的统计代码行数的小技巧, 使用正则表达式,用VS强大的查找功能 b[^:b#/]+.$ 最后结果:

  7. 用django统计代码行数+注释行数

    实现统计代码行数: 1.首先在url.py中配置 from django.conf.urls import url from django.contrib import admin from app0 ...

  8. cloc 统计代码行数工具

    cloc 统计代码行数工具 官网地址:http://cloc.sourceforge.net/ 下载完成后 会生成一个.exe文件 需要修改文件名为 cloc.exe 然后把这个文件拷贝到需要统计的根 ...

  9. python统计代码行数

    以前写了一个java的统计代码行数的小程序,最近在看python,于是就参考前辈的代码,写了一个统计文件夹下面各种程序的代码的小程序,这里贴出来供大家参考 参考链接: https://gist.git ...

随机推荐

  1. 必备Docker命令

    Dockerfile常用指令 Docker常用操作指令 Docker管理指令 文章来源:https://macrozheng.github.io/mall-learning/#/reference/d ...

  2. python:对list去重

    1.set()方法 numbers = [1,7,3,2,5,6,2,3,4,1,5] new_numbers = list(set(numbers)) print new_numbers 输出 [1 ...

  3. 常用gem

    rails_db better_errors awesome_print web-console irbtools binding_of_caller awesome_rails_console

  4. Java中遍历Map对象的4种方法

    java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等). HashMap<Inte ...

  5. 使用Spring CROS解决项目中的跨域问题

    CROS(Cross-Origin Resource Sharing) 用于解决浏览器中跨域请求的问题.简单的Get请求可以使用JSONP来解决,而对于其它复杂的请求则需要后端应用的支持CROS.Sp ...

  6. 一分钟 - 创建python虚拟环境

    python创建虚拟环境 python安装第三方库大都是通过pip命令安装,这个命令确实是很简便的,而对于每个独立的项目来说,需要用到的库或许会不同,如果删除或更新原来已有的版本库,或许会导致其他的项 ...

  7. Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)

    一.url控制 基本路由写法:最常用 from django.conf.urls import url from django.contrib import admin from app01 impo ...

  8. Vue框架 03

    Vue项目开发: 前后端完全分离 后端:提供接口数据 前端:页面转跳.页面布局.页面数据渲染全部由前端做 中间交互:请求 搭建Vue项目环境: Vue项目需要自建服务器:node node介绍: 1. ...

  9. 如何解决visual studio2017 install 下载安装极慢的问题

    问题: visual studio 2017 下载安装速度慢,只有6.70kb/s.其他版本估计也有这个问题. 解决方案: 进入目录:C:\Windows\System32\drivers\etc 右 ...

  10. day45——html常用标签、head内常用标签

    day45 MySQL内容回顾 数据库 DBMS mysql -RDBMS 关系型 数据库分类 关系型:mysql\oracle\sqlserver\access 非关系型:redis,mongodb ...