python写一个解析文件的脚本
2015-08-10 00:00
633 查看
摘要: Python对文件排版
需求: 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()
新浪微博
@皮子喜欢打篮球
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()
新浪微博
@皮子喜欢打篮球
相关文章推荐
- 走进Python世界(六)流程控制 2. 分支控制(Swith)
- [2015-08-08] python019
- [2015-08-07] python018
- 【Python基础】生成器——generator
- python出现SyntaxError: Non-ASCII character '\xe6' in file错误
- python正则表达式 re (二)findall与finditer
- python2.x与3.x除法的区别
- 9.Python基础 面向对象的进一步拓展
- python正则表达式 re (二)split
- 【Python】内置函数清单
- 零基础学python-1.5 第一个程序
- 零基础学python-1.5 第一个程序
- Python的赋值,浅拷贝与深拷贝
- Python的多线程与多进程实践
- python matplotlib 实战安装 初体验
- python 在终端打印各种颜色的字体的方法
- Python 3.4 学习总结 (2)
- 在Notepad++中搭配Python开发环境(修改版)
- Python 3下Matplotlib画图中文显示乱码的解决方法
- Python笔记