2019年12月2日 星期一

延伸 「計算自己程式的行數、字數、字元數」


#目標
  • 使用prettytable套件,讓輸出整齊
  • 修改命令列參數,可以讀入其它檔案,一起計算字數。

#參考網頁

#程式碼
      1. #coding=utf-8
      2. import sys
      3. #引入prettytable
      4. from prettytable import PrettyTable

      5. #建立table,順便取好表頭的名稱,它是一個list。
      6. table PrettyTable(['檔名','行數','字數','字元數'])
      7. #額外table設定
      8. table.align ='l'   #靠左排列,有leftrightcenter,分別是l,r,c

      9. #取得命令列參數,它是一個list。
      10. la=sys.argv

      11. #一一處理命令列的每一個檔案,計算行數...等等,幾乎是和原來程式差不多。
      12. for fname in la:
      13.     infile open(fname,"r",encoding='utf-8')
      14.     lines infile.read().split("\n")
      15.     line_cnt len(lines)
      16.     word_cnt char_cnt 0
      17.     for line in lines:
      18.         words line.split()
      19.         word_cntchar_cnt word_cnt len(words), char_cnt len(line)
      20.     #寫入table    
      21.     table.add_row([fnameline_cntword_cntchar_cnt])
      22.     
      23. #印出table
      24. print(table)

      25. #將table轉成html之後,寫入檔案。
      26. print(table.get_html_string())#這只是順便印出來觀察
      27. open('result.txt','w')
      28. f.write(str(table.get_html_string()))  #因為寫入檔案,必須是string格式,所以轉換一下。
      29. f.close()
在命令列下的指令,後面可以接更多檔案。
python countchar.py abc.txt

#輸出

將result.txt的內容,貼成html檔。
                    加一點料,表格就更好看。那是html的事了。
                    <table  border="1" cell cellpadding="0" cellspacing="0">

沒有留言:

張貼留言