python寫一個指令碼解析檔案

來源:互聯網
上載者:User

標籤:

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寫一個指令碼解析檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.