Cat command implementation using python.
Run:
On Linux, you can useĀ
./cat.py [path]
OR
python ./cat.py [path]
Example:
./cat.py ./test_cat.txt
Source Code:
cat.py
#!/usr/bin/python
import argparse
from pathlib import Path
from sys import stderr, stdout
import os
class CatError(Exception):
pass
class Logger:
def __init__(self, verbosity=False):
self.verbose = verbosity
def error(self, message):
print(f'ERROR: {message}')
logger = Logger()
'''
Read the selected text file
Example:
your/path/file.txt
'''
def readFile(src: Path):
'''
if the given path is a directory
ERROR the path is a directory
'''
if src.is_dir():
logger.error(f'The path {src}: is a directory')
else:
with open(src, 'r') as f:
for lines in f:
print(lines, end='')
def cli() -> argparse.Namespace:
parser = argparse.ArgumentParser(
prog='cat',
description='cat command implementation in python',
epilog='Example: your/path/file.txt'
)
parser.add_argument(
'source',
type=Path,
help='Source file'
)
return parser.parse_args()
def main():
args = cli()
try:
readFile(args.source)
except CatError as e:
logger.error(e)
exit(1)
except KeyboardInterrupt:
logger.error('\nInterrupt')
'''
Start the program
'''
if __name__ == '__main__':
main()
test_cat.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam consequat elit vel pretium pellentesque. Vivamus commodo leo sed lorem auctor elementum. Maecenas ut erat ut velit maximus luctus. Vestibulum varius justo et mauris tristique pharetra rutrum porta nulla. Nam porttitor lobortis posuere. Aenean erat nisl, aliquam id molestie in, luctus quis mauris. Donec fermentum vel quam in consectetur. Aliquam nec mauris quis tellus faucibus fermentum. Suspendisse ac maximus sem. Fusce feugiat non dui non gravida. Ut ac eleifend tellus. Vivamus consectetur finibus nisi. Etiam id odio vitae arcu aliquam tincidunt nec sit amet quam.