aboutsummaryrefslogtreecommitdiff
path: root/challenge-004/abigail/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-004/abigail/python/ch-2.py')
-rw-r--r--challenge-004/abigail/python/ch-2.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-004/abigail/python/ch-2.py b/challenge-004/abigail/python/ch-2.py
new file mode 100644
index 0000000000..4e94f7fe7d
--- /dev/null
+++ b/challenge-004/abigail/python/ch-2.py
@@ -0,0 +1,40 @@
+#!/opt/local/bin/python
+
+#
+# See ../README.md
+#
+
+#
+# Run as python ch-2.py < input-file
+#
+
+import fileinput
+import getopt
+import sys
+
+#
+# Parse options
+#
+opts, args = getopt . getopt (sys . argv [1:], 'f:')
+for opt, val in opts:
+ if opt == "-f":
+ filename = val
+
+
+#
+# Find the words in 'filename' which can be constructed
+# from the letters in 'letters'.
+#
+def find_words (filename, letters):
+ letters = list (letters . lower () . strip ())
+ for word in open (filename):
+ word = word . strip ()
+ copy = word . lower ()
+ for letter in letters:
+ copy = copy . replace (letter, "", 1)
+ if copy == "":
+ print (word)
+
+
+for line in fileinput . input ('-'):
+ find_words (filename, line . strip ())