Skip to content

Commit 36c79a6

Browse files
committed
print multiple files and folders
1 parent 2ad95a6 commit 36c79a6

1 file changed

Lines changed: 21 additions & 4 deletions

File tree

  • implement-shell-tools/ls

‎implement-shell-tools/ls/ls.py‎

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,32 @@ def get_dir_entries(path, aFlag=args.a):
3131

3232
return entries
3333

34+
3435
def print_entries(entries, onePerLineFlag = args.opt_one):
3536
if (onePerLineFlag):
3637
for entry in entries:
3738
print(entry)
38-
else:
39+
elif (len(entries) > 0):
3940
for i in range(len(entries)-1):
4041
print(f"{entries[i]}\t", end="")
41-
print(entries[-1])
42+
print(f"{entries[-1]}")
43+
44+
45+
def main():
46+
# file and directory paths are processed separately
47+
file_args = [arg for arg in args.paths if os.path.isfile(arg)]
48+
dir_args = [arg for arg in args.paths if os.path.isdir(arg)]
49+
50+
if (len(file_args) > 0):
51+
print_entries(file_args)
52+
53+
for index, path in enumerate(dir_args, start=0):
54+
if (len(args.paths) > 1):
55+
if (index > 0 or len(file_args) > 0):
56+
print("")
57+
print(f"{path}:")
58+
print_entries(get_dir_entries(path))
4259

4360

44-
# for path in args.paths:
45-
# printEntries(getDirectoryEntries(path))
61+
if __name__ == "__main__":
62+
main()

0 commit comments

Comments
 (0)