
February 3rd, 2013, 02:43 PM
|
 |
Contributing User
|
|
|
|
Code:
'''
$ # invoke doctest on /tmp/p.py using bash.
$ ( cd /tmp && python -m doctest p.py )
'''
import re
import sys
import argparse # if you can understand this, it's good to use.
def accept(fyeah,fnay,strings):
return [s for s in strings if fyeah(s) and not fnay(s)]
def main(keep_pattern,discard_pattern,strings):
'''
>>> main(*('a','b','a b ab xa xab xb yzs'.split()))
['a', 'xa']
'''
y = re.compile(keep_pattern)
n = re.compile(discard_pattern)
return accept(y.search,n.search,strings)
if '__main__' == __name__:
argv = sys.argv
try:
retain,discard = argv[1:3]
file_names = argv[3:]
except:
sys.stderr.write('\nUse: %s retain_pattern discard_pattern [files...]\n'%argv[0])
sys.exit(1)
retained_names = main(retain,discard,file_names)
print(str(retained_names))
__________________
[code] Code tags[/code] are essential for python code!
|