python写一个脚本解析文件

Python写一个脚本解析文件

----基于Red Hat Enterprise Linux Server release 6.4 (Santiago);python 2.6.6

需求: 1.去掉空行

2.去掉空行后输出到一个新文件

附加需求(排版):1.‘-’缩进n个字符

‘—’缩进2n个字符

以此类推

2.‘-’开头的所有句子输出在一行

‘—’开头的句子输出在一行

以此类推

--------------------------------------------分隔线------------------------------------------------------

步入正题,之前没有接触过Python如何操作字符串,但是感觉上比较简单。

思路:1.要去解析文件,首先要打开文件

2.输出成一个新文件,先要本地写一个文件,把解析过的文件写进去

3.去掉空行就要先识别空行,利用split(),如果spli()不能返回值,说明就是空行

4.关于排版缩进的问题,首先要识别出不同类型的句子,用正则匹配,然后输出字符串的时候前面加上空格,这样就缩进了。

代码:

#!/usr/bin/python

#coding=utf-8

import re

###待会要用到正则匹配,所以输入re模块

old_file=open(‘路径+文件名‘,‘r‘)

###打开一个要解析的文件

download_file=open(‘/root/Desktop/lianxi/newfile‘,‘w‘)

###本地新建一个文件,写入解析好的内容

lines=old_file.readlines()

###.readlines()读取整个文件,分析成一个行的列表

for l in lines:

match=re.match(r‘^\-\w.*‘,l)

###匹配首字符是-的句子

if match:

a=match.group()

###将匹配结果赋值给a

download_file.write("  "+a)

###在a的前面加上两个空格然后写入download_file

match1=re.match(r‘^\-\-\w.*‘,l)

if match1:

b=match1.group()

download_file.write("    "+b)

if l.split():

download_file.write(l)

###用到了split分割,按空格分割,空行自然为0

print "success"

old_file.close()

download_file.close()

新浪微博

@皮子喜欢打篮球

时间: 2024-10-11 11:48:17

python写一个脚本解析文件的相关文章

老男孩教育每日一题-2017-04-17:使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警

老男孩教育每日一题-2017-04-17: 使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警. 今天是老男孩教育每日一题陪伴大家的第29天.

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

用Python写一个ftp下载脚本

用Python写一个ftp下载脚本 ----基于Red Hat Enterprise Linux Server release 6.4 (Santiago):python 2.6.6 Ps:少侠我接触Python半个月以来接到的第一个需求,虽然如此简单的一个脚本,少侠我磕磕绊绊却用了将近一天半的时间才写出来,但还是很开心,毕竟也粗来了,废话不多说,切入正题.因为一开始没有用过ftplib模块,所以各种谷歌度娘一堆资料杂乱不堪,话不清,理不乱的,本文实现的功能简单,下面介绍一下,以免误导读者. 需

十行代码--用python写一个USB病毒 (知乎 DeepWeaver)

昨天在上厕所的时候突发奇想,当你把usb插进去的时候,能不能自动执行usb上的程序.查了一下,发现只有windows上可以,具体的大家也可以搜索(搜索关键词usb autorun)到.但是,如果我想,比如,当一个usb插入时,在后台自动把usb里的重要文件神不知鬼不觉地拷贝到本地或者上传到某个服务器,就需要特殊的软件辅助. 于是我心想,能不能用python写一个程序,让它在后台运行.每当有u盘插入的时候,就自动拷贝其中重要文件. 如何判断U盘的插入与否? 首先我们打开电脑终端,进入/Volume

python写一个通讯录V2.0

python写一个通讯录step by step V2.0 引用知识 list + dict用于临时存储用户数据信息 cPickle用于格式化文件存取 依旧使用file来进行文件的存储 解决问题 1.操刀开始去做 原始代码 实现功能(可做模板) 1.判断输入内容是否在给出的menu目录内,在的话,返回对应结果,不在就报错 2.调用os模块的exit功能 3.字典配合循环加上函数实现switch的功能 #!/usr/bin/env python #coding:utf8 #Author:zhuim

[py]python写一个通讯录step by step V3.0

python写一个通讯录step by step V3.0 参考: http://blog.51cto.com/lovelace/1631831 更新功能: 数据库进行数据存入和读取操作 字典配合函数调用实现switch功能 其他:函数.字典.模块调用 注意问题: 1.更优美的格式化输出 2.把日期换算成年龄 3.更新操作做的更优雅 准备工作 db准备 - 创建数据库 mysql> create database txl charset utf8; Query OK, 1 row affecte

python写一个通讯录

闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 ? 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 1 import json 2 import time 3 4 5 class Address(object): 6 def __init__(self): 7 with open("通讯录.txt", 'r', encoding='utf-8') as f: 8 self.data = json.loads(f.read())

python写个简单的文件上传是有多难,要么那么复杂,要么各种,,,老子来写个简单的

def upload(url,params): ''' 上传文件到服务器,不适合大文件 @params url 你懂的 @params {"action":"xxx","@file","file_path"} 普通参数 key:value 文件key头部加@ ''' import os import urllib2 BOUNDARY = "0450de9528f040078csuxianbaozic06"

16.03.18 【练习】case的用法 写一个脚本

写一个脚本,可以结合艘选项及参数,而后能获取每一个选项,及选项的参数,并能根据选项及参数做出特定的操作,比如:adminusers.sh --add tom,blair --del tom,blair -v|--verbose -h|--help #!/bin/bash # DEBUG=0 ADD=0 DEL=0 for i in `seq 0 $#`; do if [ $# -gt 0 ]; then case $1 in -v|--verbose) DEBUG=1 shift ;; -h|-