6
如何使python程序的行为像适当的unix工具?
我周围有一些Python脚本,我正在重写它们。我对他们所有人都有同样的问题。 对于我来说,如何编写程序以使其像适当的unix工具一样运作尚不明显。 因为这 $ cat characters | progname 和这个 $ progname characters 应该产生相同的输出。 我在Python中找到的最接近的东西是fileinput库。不幸的是,我并没有真正看到如何重写我的Python脚本,所有这些看起来像这样: #!/usr/bin/env python # coding=UTF-8 import sys, re for file in sys.argv[1:]: f = open(file) fs = f.read() regexnl = re.compile('[^\s\w.,?!:;-]') rstuff = regexnl.sub('', fs) f.close() print rstuff 如果有标准输入,fileinput库处理标准输入,如果有文件,则处理文件。但是它遍历单行。 import fileinput for line in fileinput.input(): process(line) 我真的不明白。我想如果您要处理的是小文件,或者您对文件的处理不多,这似乎很明显。但是,就我的目的而言,这比仅打开整个文件并将其读取为字符串要慢得多,如上所述。 …