如何在Python中创建文本文件寻呼机?即一个程序的基本版本,比如Unix的更多或更少命令?
答案 0 :(得分:1)
'''
tp.py
Purpose: A simple text pager.
Version: 0.1
Platform: Windows-only.
Can be adapted for Unix using tty / termios calls.
Only the use of msvcrt.getch() needs to be changed.
Author: Vasudev Ram
Copyright 2017 Vasudev Ram
Web site: https://vasudevram.github.io
Blog: https://jugad2.blogspot.com
Product store: https://gumroad.com/vasudevram
'''
import sys
import string
from msvcrt import getch
def pager(in_fil=sys.stdin, lines_per_page=10, quit_key='q'):
assert lines_per_page > 1 and lines_per_page == int(lines_per_page)
assert len(quit_key) == 1 and \
quit_key in (string.ascii_letters + string.digits)
lin_ctr = 0
for lin in in_fil:
sys.stdout.write(lin)
lin_ctr += 1
if lin_ctr >= lines_per_page:
c = getch().lower()
if c == quit_key.lower():
break
else:
lin_ctr = 0
def main():
try:
sa, lsa = sys.argv, len(sys.argv)
if lsa == 1:
pager()
elif lsa == 2:
with open(sa[1], "r") as in_fil:
pager(in_fil)
else:
sys.stderr.write
("Only one input file allowed in this version")
except IOError as ioe:
sys.stderr.write("Caught IOError: {}".format(repr(ioe)))
sys.exit(1)
except Exception as e:
sys.stderr.write("Caught Exception: {}".format(repr(e)))
sys.exit(1)
if __name__ == '__main__':
main()
此处有更多详情:
https://jugad2.blogspot.in/2017/02/tp-simple-text-pager-in-python.html