python写一个解析文件的脚本

本文介绍了一个使用Python解析并格式化文本文件的方法。通过去除空行和调整文本缩进,实现了对原始文件内容的整理。该脚本适用于Red Hat Enterprise Linux Server 6.4环境下的Python 2.6.6版本。
摘要由CSDN通过智能技术生成

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()       

                                                                                                            新浪微博

                                                                                                           @皮子喜欢打篮球

转载于:https://my.oschina.net/pppi/blog/490277

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值