Files
mixly3/common/templates/python/ls.py
2024-08-17 23:59:17 +08:00

40 lines
1.2 KiB
Python

try:
import os
except ImportError:
import uos as os
def check_path(path):
try:
stat = os.stat(path)
# The first element of stat contains the file type and permission information
# The mode index of the tuple returned by os.stat() is 0
mode = stat[0]
# To determine whether it is a directory, check the directory bit in stat mode
if mode & 0o170000 == 0o040000:
if len(os.listdir(path)):
return 'dir'
else:
return 'empty dir'
# To determine whether it is a file, check the file position in stat mode
elif mode & 0o170000 == 0o100000:
return 'file'
else:
return 'special file'
except OSError:
return 'none'
def listdir(directory):
output = []
if directory == '/':
dirs = sorted([directory + f for f in os.listdir(directory)])
else:
dirs = sorted([directory + '/' + f for f in os.listdir(directory)])
for dir in dirs:
info = check_path(dir)
if info == 'none':
continue
output.append([dir, info])
return output
print(listdir('{{&path}}'))