延伸 「計算自己程式的行數、字數、字元數」
#目標
- 使用prettytable套件,讓輸出整齊
- 修改命令列參數,可以讀入其它檔案,一起計算字數。
#參考網頁
https://linuxops.org/blog/python/prettytable.html
https://medium.com/mr-brown/python-pretty-table-%E7%BE%8E%E9%BA%97%E7%9A%84%E8%A1%A8-a7879a47ade8
https://medium.com/mr-brown/python-pretty-table-%E7%BE%8E%E9%BA%97%E7%9A%84%E8%A1%A8-a7879a47ade8
- #coding=utf-8
- import sys
- #引入prettytable
- from prettytable import PrettyTable
- #建立table,順便取好表頭的名稱,它是一個list。
- table = PrettyTable(['檔名','行數','字數','字元數'])
- #額外table設定
- table.align ='l' #靠左排列,有left, right, center,分別是l,r,c
- #取得命令列參數,它是一個list。
- la=sys.argv
- #一一處理命令列的每一個檔案,計算行數...等等,幾乎是和原來程式差不多。
- for fname in la:
- infile = open(fname,"r",encoding='utf-8')
- lines = infile.read().split("\n")
- line_cnt = len(lines)
- word_cnt = char_cnt = 0
- for line in lines:
- words = line.split()
- word_cnt, char_cnt = word_cnt + len(words), char_cnt + len(line)
- #寫入table
- table.add_row([fname, line_cnt, word_cnt, char_cnt])
- #印出table
- print(table)
- #將table轉成html之後,寫入檔案。
- print(table.get_html_string())#這只是順便印出來觀察
- f = open('result.txt','w')
- f.write(str(table.get_html_string())) #因為寫入檔案,必須是string格式,所以轉換一下。
- f.close()
在命令列下的指令,後面可以接更多檔案。
python countchar.py abc.txt
#輸出
將result.txt的內容,貼成html檔。
加一點料,表格就更好看。那是html的事了。
<table border="1" cell cellpadding="0" cellspacing="0">
沒有留言:
張貼留言