`

Python 读取日志文件在前端实现分页查询

 
阅读更多
# -*- coding: utf-8 -*-

import fileinput

filePath = 'd:/test.txt'
page_size = 5           #每页显示的行数
page_num = 1            #前端的当前页数
current_num = 0         #从当前行数开始读取
record_count = 0               #文件总数据条数
flag = False            #用来标记是否到了需读取的起始行号
init_flag = True        #是否为初次加载
res = []                                 #结果集
result = {'count' : 0, 'res' : []}        #最终结果集


if init_flag:
    '''
    如果前端是初次加载,init_flag = true, 计算文件总数,计算后将init_flag 置为false,下次翻页不再做总数统计
    '''
    temp_f = open(filePath, 'r')
    for count, line in enumerate(open(filePath, 'r')):
        record_count += 1
    temp_f.close()
    init_flag = False

for eachline in fileinput.input(filePath):
    '''
    此部分用来读取需要显示部分的数据
    '''
    line_no = fileinput.filelineno()        #当前读取的行号
    if not flag:
        if line_no == (page_num - 1)*page_size + 1:
            flag = True
    if flag:
        if line_no > (page_num - 1)*page_size and line_no <= page_num*page_size:
            res.append(eachline)
        else:
            current_num = line_no
            fileinput.close();
            break;
result['count'] = record_count
result['res'] = res

print result
# -*- coding: utf-8 -*-

import fileinput

filePath = 'd:/test.txt'
pagesize = 5           #每页显示的行数
pageindex = 1            #前端的当前页数
current_num = 0         #从当前行数开始读取
record_count = 0               #文件总数据条数
flag = False            #用来标记是否到了需读取的起始行号
init_flag = True        #是否为初次加载
res = []                                 #结果集
result = {'count' : 0, 'res' : []}        #最终结果集


if init_flag:
    '''
    如果前端是初次加载,init_flag = true, 计算文件总数,计算后将init_flag 置为false,下次翻页不再做总数统计
    '''
    temp_f = open(filePath, 'r')
    for count, line in enumerate(open(filePath, 'r')):
        record_count += 1
    temp_f.close()
    init_flag = False

for eachline in fileinput.input(filePath):
    '''
    此部分用来读取需要显示部分的数据
    '''
    line_no = fileinput.filelineno()        #当前读取的行号
    if not flag:
        if line_no == record_count - pageindex*pagesize + 1:
            flag = True
    if flag:
        if line_no >= record_count - pageindex*pagesize + 1 \
            and line_no <  record_count - (pageindex - 1)*pagesize + 1:
            res.append(eachline)
        else:
            fileinput.close();
            break;
result['count'] = record_count
result['res'] = res

print result

分享到:
评论

相关推荐

    Python-一个基于flask的文章系统

    - 数据库操作:通过SQLAlchemy,实现对文章的CRUD(创建、读取、更新、删除)操作。例如,`Article`类可以定义为一个数据库模型,包含字段如`title`、`content`、`author`等。 - 用户接口:设计用户交互界面,如登录...

    html_browser:使用Django实现的基于HTML的文件浏览器

    6. **安全性**:在实现文件浏览器时,必须考虑安全性。防止目录遍历攻击,确保用户只能访问其有权访问的文件和目录,是至关重要的。Django提供了安全的中间件和函数,如`django.middleware.csrf.CsrfViewMiddleware`...

    django-xadmin-manger:使用django + xadmin 快速开发后台管理项目,对公司产品以及对话日志进行管理,产品的增删改查,以及产品表日志表的导出excel ,csv功能,以及搜索功能

    在Django和Xadmin中,搜索功能通常通过查询参数实现,允许用户输入关键词或选择过滤条件,返回匹配的结果。 综上所述,“django-xadmin-manager”是一个集成了Django和Xadmin的强大后台管理系统,具备完整的数据...

    数据库 文章管理系统 源代码

    8. 性能优化:随着文章数量的增长,可能需要考虑数据库索引、缓存策略(如Redis或Memcached)、分页查询等方法来提升系统的性能。 9. 数据备份与恢复:定期备份数据库和提供恢复机制是保障数据安全的重要环节。 10...

    后台管理页面

    综上所述,"后台管理页面"的开发涵盖了多种技术知识点,包括但不限于身份验证、权限控制、响应式设计、数据库操作、文件管理、内容发布、系统设置、日志记录和测试策略。"HempFlowers"这个压缩包很可能是这些技术的...

    django-vue-admin-pro-master.zip

    5. 分页和排序:轻松实现数据的分页和动态排序,提升数据浏览效率。 6. 错误处理与日志记录:Django和Vue.js都有相应的错误处理机制,确保系统的稳定运行。 五、项目结构解析 在解压后的"django-vue-admin-pro-...

    tushuguanlixit.zip_简单增删改查

    7. 性能优化:对于大规模的图书数据,系统可能需要进行索引优化、缓存策略或者数据库分页等手段来提升查询速度。 综上所述,这个“图书管理系统”虽然功能简单,但涵盖了数据库管理系统的基本构造和运作原理,是...

    新闻管理系统

    - 分页和排序:为了提高用户体验,新闻列表通常需要实现分页和按时间、热度等条件的排序功能。 - 错误处理和日志记录:确保系统在遇到问题时能够给出适当的反馈,同时记录日志以便于排查问题。 通过学习和实践新闻...

    xadmin-django2.zip

    在Django中,admin是一个内置的管理接口,它允许开发者快速地为模型创建CRUD(创建、读取、更新、删除)操作。然而,Django的默认admin界面虽然功能全面,但在样式和定制性上可能稍显不足。**xadmin** 插件则弥补了...

    小虫新闻管理系统V1.0源代码.zip

    9. **异常处理和日志记录**:良好的错误处理和日志记录机制有助于调试和故障排查,源代码中会看到这些功能的实现。 10. **单元测试和集成测试**:为了确保代码质量,源代码中可能包含了自动化测试脚本,通过测试...

    网页上的学生管理系统

    网页上的学生管理系统是一种基于Web技术实现的教育管理工具,它允许管理员、教师或特定授权人员在互联网上对学生信息进行集中管理和处理。这个系统通常包括一系列功能,如添加新学生信息、更新现有信息、删除不再...

    毕设&课程作业_智慧出行后端代码库。一个智能的车辆预约系统!Powered By Django &amp; DRF.zip

    在这个车辆预约系统中,DRF可能被用来创建、读取、更新和删除车辆预约信息,以及处理用户身份验证和权限验证。 3. **RESTful API设计**:REST(Representational State Transfer)是一种网络应用程序的设计风格和...

    一个多用户留言本

    4. **前端界面**:使用HTML、CSS和JavaScript构建用户友好的界面,实现表单提交、页面动态加载、分页显示等功能。还可以利用AJAX实现无刷新交互,提升用户体验。 5. **后端逻辑**:后端处理用户的请求,如添加、...

    新闻管理系统的源代码(附加PPT制作的系统功能说明)

    此外,还可以通过阅读源代码学习到编程语言(如PHP、Java、Python等)、框架(如Laravel、Django、Spring Boot等)的使用技巧,以及如何实现常见的Web功能,如分页、排序、过滤等。 总之,这个新闻管理系统的源代码...

    使用redis构建简单的社交网站

    - **分页功能**:利用Redis的SCAN命令实现分页功能,可以高效地获取分页数据,减少内存消耗。 - **搜索功能**:Redis自带的RediSearch模块提供全文搜索功能,可以增强用户的搜索体验。 #### 十、缓存策略 - **热门...

    django:django

    13. **性能优化**:Django可以通过缓存机制、数据库查询优化、分页等手段提高应用的性能。 14. **开发与部署**:Django的开发环境友好,拥有集成的开发服务器,而生产环境部署可以通过Gunicorn、uWSGI等Wsgi服务器...

Global site tag (gtag.js) - Google Analytics