標籤:
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()
新浪微博
@皮子喜歡打籃球
python寫一個指令碼解析檔案