您的位置:首页 > 编程语言 > Python开发

python写一个解析文件的脚本

2015-08-10 00:00 633 查看
摘要: Python对文件排版

Python写一个解析文件的脚本

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

需求: 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()

新浪微博

@皮子喜欢打篮球
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: