Skip to content

Commit e646e19

Browse files
committed
common patterns
1 parent 8e36fcf commit e646e19

19 files changed

+991
-0
lines changed

appendix/examples/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
out.txt

appendix/examples/args.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env python3
2+
3+
import os
4+
import sys
5+
6+
args = sys.argv[1:]
7+
num = len(args)
8+
9+
print('There are {} arg{}'.format(num, '' if num == 1 else 's'))

appendix/examples/codons.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env python3
2+
"""Extract codons from DNA"""
3+
4+
import os
5+
import sys
6+
7+
args = sys.argv[1:]
8+
num_args = len(args)
9+
10+
if not 1 <= num_args <= 2:
11+
print('Usage: {} DNA'.format(os.path.basename(sys.argv[0])))
12+
sys.exit(1)
13+
14+
string = args[0]
15+
k = 3
16+
n = len(string) - k + 1
17+
18+
for i in range(0, n, k):
19+
print(string[i:i+k])

appendix/examples/create_dir.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env python3
2+
"""Test for a directory and create if needed"""
3+
4+
import os
5+
import sys
6+
7+
args = sys.argv[1:]
8+
9+
if len(args) != 1:
10+
print('Usage: {} DIR'.format(os.path.basename(sys.argv[0])))
11+
sys.exit(1)
12+
13+
dirname = args[0]
14+
15+
if os.path.isdir(dirname):
16+
print('"{}" exists'.format(dirname))
17+
else:
18+
print('Creating "{}"'.format(dirname))
19+
os.makedirs(dirname)

appendix/examples/default_arg.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/usr/bin/env python3
2+
3+
import os
4+
import sys
5+
6+
args = sys.argv[1:]
7+
num_args = len(args)
8+
9+
if not 1 <= num_args <= 2:
10+
print('Usage: {} FILE [NUM]'.format(os.path.basename(sys.argv[0])))
11+
sys.exit(1)
12+
13+
file = args[0]
14+
num = args[1] if num_args == 2 else 10
15+
16+
print('FILE is "{}", NUM is "{}"'.format(file, num))

appendix/examples/kmers.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/usr/bin/env python3
2+
"""Extract k-mers from string"""
3+
4+
import os
5+
import sys
6+
7+
args = sys.argv[1:]
8+
num_args = len(args)
9+
10+
if not 1 <= num_args <= 2:
11+
print('Usage: {} STR [K]'.format(os.path.basename(sys.argv[0])))
12+
sys.exit(1)
13+
14+
string = args[0]
15+
k = args[1] if num_args == 2 else '3'
16+
17+
# Guard against a string like "foo"
18+
if not k.isdigit():
19+
print('k "{}" is not a digit'.format(k))
20+
sys.exit(1)
21+
22+
# Safe to convert now
23+
k = int(k)
24+
25+
if len(string) < k:
26+
print('There are no {}-length substrings in "{}"'.format(k, string))
27+
else:
28+
n = len(string) - k + 1
29+
for i in range(0, n):
30+
print(string[i:i+k])

appendix/examples/list_dir.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env python3
2+
"""Show contents of directory argument"""
3+
4+
import os
5+
import sys
6+
7+
args = sys.argv[1:]
8+
9+
if len(args) != 1:
10+
print('Usage: {} DIR'.format(os.path.basename(sys.argv[0])))
11+
sys.exit(1)
12+
13+
dirname = args[0]
14+
15+
if not os.path.isdir(dirname):
16+
print('"{}" is not a directory'.format(dirname), file=sys.stderr)
17+
sys.exit(1)
18+
19+
for entry in os.listdir(dirname):
20+
print(entry)

appendix/examples/name_args.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env python3
2+
3+
import os
4+
import sys
5+
6+
args = sys.argv[1:]
7+
8+
if len(args) != 2:
9+
print('Usage: {} FILE NUM'.format(os.path.basename(sys.argv[0])))
10+
sys.exit(1)
11+
12+
file, num = args
13+
14+
file = args[0]
15+
num = args[1]
16+
17+
print('FILE is "{}", NUM is "{}"'.format(file, num))

appendix/examples/nobody.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
I’m Nobody! Who are you?
2+
Are you – Nobody – too?
3+
Then there’s a pair of us!
4+
Don’t tell! they’d advertise – you know!
5+
6+
How dreary – to be – Somebody!
7+
How public – like a Frog –
8+
To tell one’s name – the livelong June –
9+
To an admiring Bog!
10+
11+
Emily Dickinson

appendix/examples/read_file.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env python3
2+
"""Read a file argument"""
3+
4+
import os
5+
import sys
6+
7+
args = sys.argv[1:]
8+
9+
if len(args) != 1:
10+
print('Usage: {} FILE'.format(os.path.basename(sys.argv[0])))
11+
sys.exit(1)
12+
13+
filename = args[0]
14+
15+
if not os.path.isfile(filename):
16+
print('"{}" is not a file'.format(filename), file=sys.stderr)
17+
sys.exit(1)
18+
19+
for line in open(filename):
20+
print(line, end='')

0 commit comments

Comments
 (0)