Apr-01-2018, 07:08 AM
(This post was last modified: Apr-01-2018, 07:08 AM by Gribouillis.)
I wonder if it would be better to use the stat module's symbolic constants. This would do a
os.stat()
call for each path, but I don't know how many system calls your code doesimport os import stat codes = [ (stat.S_ISLNK, 'l'), (stat.S_ISBLK, 'b'), (stat.S_ISCHR, 'c'), (stat.S_ISDIR, 'd'), (stat.S_ISREG, 'f'), (stat.S_ISSOCK, 's'), (stat.S_ISFIFO, 'p'), ] def pathftn(path): mode = os.stat(str(path), follow_symlinks=False).st_mode for func, letter in codes: if func(mode): return letter return '?'