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()
新浪微博