流程:

  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. IDEA查看接口的实现类

    查找接口的实现类: 快捷键 ctrl + alt +B 再按F2查看详细文档注解 查看类或接口的继承关系: ctrl + h

  2. 【面试】c++单例模式

    1. 单例模式 #include <iostream> using namespace std; class CSingleton { private: CSingleton() {} / ...

  3. IDEA 如何搭建maven 安装、下载、配置(图文)

    1.下载 maven 压缩包 输入网址 www.apache.org 会看到以下界面 住下划看到以下界面 然后看到这个界面 选择下载这个版本 下载后 解压 maven 压缩包 (文件路径不建议用有中文 ...

  4. mac下安装face_recognition

    安装依赖库: 1.安装cmake (是一个跨平台的安装工具) brew install cmake 2.安装boost.boost-python(C++的程序库) brew install boost ...

  5. [图片问答]LODOP打印的行间距字间距

    LODOP可以打印纯文本,也可以是超文本,关于哪些打印项是纯文本,哪些打印项是超文本,之前有博文相关介绍:LODOP中的纯文本和超文本打印项. 之前的关于纯文本的行间距字间距介绍:Lodop设置文本项 ...

  6. Ingress 访问日志分析与监控

    阿里云Ingress除了提供外部可访问的 URL.负载均衡.SSL.基于名称的虚拟主机外,还支持将所有用户的HTTP请求日志记录到标准输出中.同时Ingress访问日志与阿里云日志服务打通,您可以使用 ...

  7. qt creator的使用总结

    每一个不曾起舞的日子,都是对生命的辜负----------尼采 1.  HELP功能: 1)有时点击"HELP"之后,对应的页面里没有左侧的搜索栏.比较理想的状态是将左侧导航栏划分 ...

  8. 隐藏GridControl的“Drag a column header here to group by that column”

    打开设计器,找到OptionsView,往下拉设置showGroupPanel为false

  9. 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑

    最近给公司微信公众号,写了微信h5业务页面,总结分享一下前端开发过程中的几个兼容性坑,项目直接拿的公司页面,所以下文涉及图片都模糊处理了. 1.ios端兼容input光标高度 问题详情描述:input ...

  10. go 缓冲IO

    package main import ( "bufio" "fmt" "os" "strings" ) func ma ...