brock@montreat:~$ python3 Python 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> import stat >>> dir_name = '/var/tmp/csci431' >>> file_list = os.listdir(dir_name) >>> file_list ['dir2', 'dir3', 'here', 'random1', 'passwd', 'nothing', 'dir1', 'random2', 'a'] >>> full_file_list = [os.path.join(dir_name, x) for x in file_list] >>> full_file_list ['/var/tmp/csci431/dir2', '/var/tmp/csci431/dir3', '/var/tmp/csci431/here', '/var/tmp/csci431/random1', '/var/tmp/csci431/passwd', '/var/tmp/csci431/nothing', '/var/tmp/csci431/dir1', '/var/tmp/csci431/random2', '/var/tmp/csci431/a'] >>> a_file = full_file_list[3] >>> print(a_file) /var/tmp/csci431/random1 >>> a_dir = full_file_list[0] >>> print(a_dir) /var/tmp/csci431/dir2 >>> os.stat(a_file) os.stat_result(st_mode=33188, st_ino=6687272, st_dev=2066, st_nlink=1, st_uid=10000, st_gid=100, st_size=1000000, st_atime=1550242725, st_mtime=1550242725, st_ctime=1550242725) >>> os.stat(a_dir) os.stat_result(st_mode=16841, st_ino=6687110, st_dev=2066, st_nlink=2, st_uid=1000, st_gid=100, st_size=4096, st_atime=1550242886, st_mtime=1550242886, st_ctime=1550243438) >>> os.stat(a_file).st_size 1000000 >>> os.stat(a_file).st_mode 33188 >>> oct(os.stat(a_file).st_mode) '0o100644' >>> oct(os.stat(a_dir).st_mode) '0o40711' >>> os.stat(a_dir).st_mode 16841 >>> stat.S_ISDIR(os.stat(a_dir).st_mode) True >>> stat.S_ISREG(os.stat(a_dir).st_mode) False >>> full_reg_list = [os.path.join(dir_name, x) for x in full_file_list ... ... if stat.S_ISREG(os.stat(x).st_mode)] >>> full_reg_list = [os.path.join(dir_name, x) ... for x in full_file_list ... if stat.S_ISREG(os.stat(x).st_mode)] >>> full_reg_list ['/var/tmp/csci431/random1', '/var/tmp/csci431/passwd', '/var/tmp/csci431/random2'] >>> full_dir_list = [os.path.join(dir_name, x) ... for x in full_file_list ... if stat.S_ISDIR(os.stat(x).st_mode)] >>> full_dir_list ['/var/tmp/csci431/dir2', '/var/tmp/csci431/dir3', '/var/tmp/csci431/here', '/var/tmp/csci431/nothing', '/var/tmp/csci431/dir1', '/var/tmp/csci431/a'] >>> os.access(full_dir_list[0], os.X_OK) True >>> os.access(full_dir_list[1], os.X_OK) False >>> os.access(full_dir_list[2], os.X_OK) True >>> full_dir_list = [f for f in full_dir_list ... if os.access(f, os.X_OK)] >>> full_dir_list ['/var/tmp/csci431/dir2', '/var/tmp/csci431/here', '/var/tmp/csci431/nothing', '/var/tmp/csci431/dir1', '/var/tmp/csci431/a'] >>> full_dir_list ['/var/tmp/csci431/dir2', '/var/tmp/csci431/dir3', '/var/tmp/csci431/here', '/var/tmp/csci431/nothing', '/var/tmp/csci431/dir1', '/var/tmp/csci431/a'] >>> full_file_list ['/var/tmp/csci431/dir2', '/var/tmp/csci431/dir3', '/var/tmp/csci431/here', '/var/tmp/csci431/random1', '/var/tmp/csci431/passwd', '/var/tmp/csci431/nothing', '/var/tmp/csci431/dir1', '/var/tmp/csci431/random2', '/var/tmp/csci431/a'] >>> >>> full_reg_list ['/var/tmp/csci431/random1', '/var/tmp/csci431/passwd', '/var/tmp/csci431/random2']