一、使用场景

  某些配置文件里有一些特定的字符,而这些字符恰巧需要我们采集出来,然后输出到另外一个窗口做展示时,可以使用该工具。

本例的演示则提取配置文件中的【姓名:黄蓉 女 九阴真经、姓名:郭靖 男 弹指神功】两行读取出来,读取其他内容也可以,更改相应参数即可。

二、实验文件

  测试脚本:fielread.py

  配置文件:john.conf

三、测试脚本代码

#! /usr/bin/env python3
# -*- coding:UTF- -*- from tkinter import *
import tkinter ss = input('请输入搜索内容的开始首字符:')
es = input('请输入搜索内容的结束首字符:')
fp = input('请输入要搜索文件的路径:') def fetch(startStr,endStr,filePath):
newLi = []
with open(filePath,'r',encoding='utf-8') as f :
flag = False
for line in f:
if line.strip().startswith(startStr):
flag = True if line.strip().startswith(endStr):
flag = False if flag and line.strip():
newLi.append(line.strip())
return newLi info = fetch(ss,es,fp) # 调用fetch函数进行内容匹配,结果返回列表保存到info中 # []控制台打印输出
result = '\n'.join(info)
print(result) # []alert弹窗打印输出
root = Tk() # 创建窗口对象的背景颜色
new_info = Listbox(root)
for item in info:
new_info.insert(,item)
new_info.pack()
root.mainloop()

四、配置文件内容

#
# This file is part of John the Ripper password cracker,
# Copyright (c) -,- by Solar Designer
#
# void init()
{
password_length = ; /* Change this to match config */ int c, i; c = ''; i = ; while (c <= '') numbers[i++] = c++;
c = 'a'; i = ; while (c <= 'z') lowers[i++] = c++;
c = 'A'; i = ; while (c <= 'Z') uppers[i++] = c++; /* symbols */
i = ;
symbols[i++] = '!'; symbols[i++] = '@'; symbols[i++] = '#'; symbols[i++] = '$';
symbols[i++] = '%'; symbols[i++] = '^'; symbols[i++] = '&'; symbols[i++] = '*';
symbols[i++] = '('; symbols[i++] = ')'; symbols[i++] = '~'; symbols[i++] = '-'; boundaries_charclass[i++] = ; boundaries_charclass[i++] = ;
boundaries_charclass[i++] = ; boundaries_charclass[i++] = ; 姓名:黄蓉 女 九阴真经
姓名:郭靖 男 弹指神功 备注:
boundaries_numbers =
boundaries_numbers =
boundaries_numbers =
boundaries_numbers =
boundaries_numbers = boundaries_letters[i++] = ; boundaries_letters[i++] = ;
boundaries_letters[i++] = ; boundaries_letters[i++] = ;
boundaries_letters[i++] = ; boundaries_letters[i++] = ;
} # End of john.conf file.
# Keep this comment, and blank line above it, to make sure a john-local.conf
# that does not end with \n is properly loaded.

五、执行效果 

Console:

请输入搜索内容的开始首字符:姓名
请输入搜索内容的结束首字符:备注
请输入要搜索文件的路径:./john.conf
姓名:黄蓉 女 九阴真经
姓名:郭靖 男 弹指神功

  

python工具 - 读取文件的部分指定内容并输出到外置窗口的更多相关文章

  1. shell读取文件的每一行内容并输出【转】

    写法一: #!/bin/bash while read line do echo $line done < file(待读取的文件) 写法二: #!/bin/bash cat file(待读取的 ...

  2. python提取批量文件内的指定内容

    目标文件夹: 文件内容: 实现代码: # -*- coding:utf-8 -*- # __author__ :kusy # __content__:get ssr info from html fi ...

  3. (转)shell:读取文件的每一行内容并输出

    写法一:----------------------------------------------------------------------------#!/bin/bashwhile rea ...

  4. shell 读取文件的每一行内容并输出

    (1)#!/bin/bash while read linedo    echo $linedone < file (2)#!/bin/bash cat file  | while read l ...

  5. 在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0

    //在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0//如果某字符串, 直接传入字符串进来//如果要查找16进制,则用如下格式传参进来: #$1A#$2A#$3A function F ...

  6. python在读取文件时出现 'gbk' codec can't decode byte 0x89 in position 68: illegal multibyte sequence

    python在读取文件时出现“UnicodeDecodeError:'gbk' codec can't decode byte 0x89 in position 68: illegal multiby ...

  7. python工具 - 批量文件重命名

    日常工作中经常会遇到这样的情况,需要将某个文件夹下的文件按着一定的规则进行重命名,当文件数量及其庞大的时候手工一个一个的去修需要耗费大量的时间,以下python工具可以协助批量修改文件名. 场景:某文 ...

  8. python中读取文件的read、readline、readlines方法区别

    #读取文件所有内容,返回字符串对象,python默认以文本方式读取文件,遇到结束符读取结束. fr = open('lenses.txt')read = fr.read()print(type(rea ...

  9. shell awk读取文件中的指定行的指定字段

    1.awk功能和实用形式 awk指定读取文件中的某一行的某个字段 awk      可以设置条件来输出文件中m行到n行中每行的指定的k字段,使用格式如下 awk    'NR==m,NR==n {pr ...

随机推荐

  1. KAFKA的安装使用

    一:介绍 1.官网 kafka.apache.org 2.产生 Kafka由 linked-in 开源  kafka-即是解决上述这类问题的一个框架,它实现了生产者和消费者之间的无缝连接.  kafk ...

  2. SqlServer 添加用户 添加角色 分配权限

    转载自:https://www.cnblogs.com/accumulater/p/6158387.html   --创建一个简单的登录,登录名为:newlogin:登录密码:123456:默认数据库 ...

  3. RefreshListView下拉刷新

    布局: <com.example.administrator.d30_myrefreshlistview.RefreshListView android:id="@+id/refres ...

  4. Python3 卷积神经网络卷积层,池化层,全连接层前馈实现

    # -*- coding: utf-8 -*- """ Created on Sun Mar 4 09:21:41 2018 @author: markli " ...

  5. JDBC fetch size

    make your java run faster A blog on java performance and optimization. On JDBC, Hibernate, caching, ...

  6. AGC027 A - Candy Distribution Again

    目录 题目链接 题解 代码 题目链接 AGC027 A - Candy Distribution Again 题解 贪心即可 代码 #include<cstdio> #include< ...

  7. socket的几大异常以及其出现的原因

    1:我是模拟了一个客户端不断的向服务器发送消息,但是当某一时刻我把服务端断掉,客户端就出现了写异常 java.net.SocketException: Connection reset by peer ...

  8. Linux 标准目录结构 FHS

    因为利用 Linux 来开发产品或 distribution 的团队实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰.所以,后来就有了 Filesystem H ...

  9. RouterOS配置静态IP上网/RouterOS做为二级路由上网

    说明:这里只展示关键步骤. -1.lan口的设置以及dhcp服务器的这些设置这里省略,参考:https://www.cnblogs.com/EasonJim/p/9589714.html 0.设置网卡 ...

  10. JAVA递归、非递归遍历二叉树(转)

    原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...