Skip to content

Commit 2d8a282

Browse files
authored
Refactor cat-python.py to use argparse for arguments
Add argparse for basic flag parsing and automatic help support
1 parent d341d5c commit 2d8a282

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

implement-shell-tools/cat/cat-python.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import sys
2+
import argparse
23

34
def cat_file(filename, flag):
45
try:
@@ -24,19 +25,25 @@ def cat_file(filename, flag):
2425
print(f"cat: {filename}: No such file or directory", file=sys.stderr)
2526

2627
def main():
27-
args = sys.argv[1:]
28+
parser = argparse.ArgumentParser(description="Simple cat clone")
2829

29-
flag = False
30-
31-
if "-n" in args:
30+
parser.add_argument("filenames", nargs="+",
31+
help="Files to display")
32+
parser.add_argument("-n", action="store_true",
33+
help="Number all output lines")
34+
parser.add_argument("-b", action="store_true",
35+
help="Number non-blank output lines")
36+
37+
args = parser.parse_args()
38+
39+
flag = False
40+
if args.n:
3241
flag = "-n"
33-
args.remove("-n")
34-
elif "-b" in args:
42+
elif args.b:
3543
flag = "-b"
36-
args.remove("-b")
3744

38-
for filename in args:
45+
for filename in args.filenames:
3946
cat_file(filename, flag)
4047

4148
if __name__ == "__main__":
42-
main()
49+
main()

0 commit comments

Comments
 (0)