def file_type():
def get_nan_file_type():
def file_type(path):
return 'nan'
return file_type
def get_unix_file_type():
file_type_map = {}
for t in ('reg', 'dir', 'chr', 'blk', 'fifo', 'lnk', 'sock'):
mode_name = 'S_IF%s' % (t.upper(),)
mode = getattr(stat, mode_name, None)
if mode is not None:
file_type_map[mode] = t
def file_type(path):
return file_type_map.get(stat.S_IFMT(os.stat(path).st_mode), 'nan')
return file_type
S_IFMT = getattr(stat, 'S_IFMT', None)
if S_IFMT is None:
return get_nan_file_type()
else:
return get_unix_file_type()
评论列表
文章目录