code viewer

寫了個打印文件的小腳本

#! /usr/bin/env python3
# Filename: codev.py

from sys import argv
from sys import stderr
from sys import stdout

def printfile(filename, flag = '-N'):
    try:
        hfile = open(filename)
    except IOError:
        stderr.write('Open file failed.\n')
        return
    # print each line of the file
    if '-N' == flag:
        for line in hfile:
            stdout.write(line)
    elif '-F' == flag: # fill mode: show escape character
        eschars = {'\f': r'\f'
                  ,'\r': r'\r'
                  ,'\n': r'\n'
                  ,'\t': r'\t'
                  ,'\v': r'\v'}
        for line in hfile:
            for key in eschars.keys():
                if key in line:
                    print(line.replace(key, eschars[key]))
    hfile.close()
        
def main():
    if len(argv) < 2:
        stderr.write('At least 2 arguments are needed.\n')
        return
    flag = '-N'
    k = 1
    if argv[1].startswith('-'):
        flag = argv[1][:]
        if flag != '-N' and flag != '-F':
            stderr.write('Bad command.\n')
        k = 2
    for codefile in argv[k:]:
        printfile(codefile, flag)
        
if __name__ == '__main__':
    main()

以後會繼續修改!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章