Ejercicio 6
This commit is contained in:
parent
d96405cef2
commit
f65c9a0a7c
|
@ -0,0 +1,44 @@
|
||||||
|
# Exercise 2
|
||||||
|
# 1. find command
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
def list(args):
|
||||||
|
if not args["path"].exists():
|
||||||
|
print(f"find: ‘{args['path']}’: No existe el fichero o el directorio")
|
||||||
|
sys.exit(1)
|
||||||
|
for file in sorted(args["path"].glob(get_query(args))):
|
||||||
|
if args["exec"]:
|
||||||
|
...
|
||||||
|
else:
|
||||||
|
print(file.relative_to("."))
|
||||||
|
|
||||||
|
|
||||||
|
def get_query(args):
|
||||||
|
if args["type"] is not None:
|
||||||
|
if args["type"] == "f":
|
||||||
|
return "**/*.*"
|
||||||
|
elif args["type"] == "d":
|
||||||
|
return "**"
|
||||||
|
else:
|
||||||
|
return f"**/{args['name']}"
|
||||||
|
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("-name", default="**/*", type=str)
|
||||||
|
parser.add_argument("-type", choices=["f", "d"])
|
||||||
|
parser.add_argument("-print", default=True, action="store_true")
|
||||||
|
parser.add_argument("-exec", action="extend", nargs="+")
|
||||||
|
|
||||||
|
if len(sys.argv) > 1:
|
||||||
|
path = Path(sys.argv[1])
|
||||||
|
del sys.argv[1]
|
||||||
|
args = parser.parse_args().__dict__
|
||||||
|
args["path"] = path
|
||||||
|
else:
|
||||||
|
args = {"path": Path("."), "name": "*", "type": None, "exec": None}
|
||||||
|
|
||||||
|
list(args)
|
Loading…
Reference in New Issue