Python Forum
How to get directory information with pathlib - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: General (https://python-forum.io/forum-1.html)
+--- Forum: Code sharing (https://python-forum.io/forum-5.html)
+--- Thread: How to get directory information with pathlib (/thread-5784.html)



How to get directory information with pathlib - Larz60+ - Oct-21-2017

Using pathlib, there are quite a few examples of how to get directory
information on root path, but the same methods don't always
work on derived paths.
Here's one example of how it can be done

Following code for windows 7 and Python 3.6.3:
from pathlib import Path


class TryPaths:
    def __init__(self):
        self.homepath = Path('.')
        self.src_datapath = self.homepath / '..' / 'data'
        self.src_ansipath = self.src_datapath / 'fips' / 'ANSI_Codes'
        self.src_amindianpath = self.src_ansipath / 'AmericanIndianAreas'

        self.show_dir(self.homepath)
        self.show_dir(self.src_datapath)
        self.show_dir(self.src_ansipath)
        self.show_dir(self.src_amindianpath)


    def show_dir(self, dirpath):
        print(f'\nDir Location: {dirpath}')
        dirs = [x.name for x in dirpath.iterdir() if x.is_dir()]
        if dirs:
            print(f'Directories: {dirs}')
        files = [x.name for x in dirpath.iterdir() if x.is_file()]
        if files:
            print(f'Files: {files}')

if __name__ == '__main__':
    TryPaths()
results:
Output:
Dir Location: . Directories: ['data', '__pycache__'] Files: ['LocalPaths.py', 'MakeFipsJson.py', 'TryPaths.py', '__init__.py'] Dir Location: ..\data Directories: ['fips', 'old'] Files: ['ReadGis.py'] Dir Location: ..\data\fips\ANSI_Codes Directories: ['AmericanIndianAreas', 'CongressionalDistricts', 'CountyAndCountyEquivalents', 'CountySubdivision', 'GNIScodesForNamedPopulatedPlaces-etc', 'MetropolitanAndMicropolitanStatisticalAreasAndRelatedAreas', 'Place', 'SchoolDistrictCodes', 'StateAndStateEquivalents', 'VotingDistrict'] Dir Location: ..\data\fips\ANSI_Codes\AmericanIndianAreas Files: ['2016AIAlist.txt', 'FileFormat.txt']
To get an actual path for any pathlib path, use:
    print(self.src_amindianpath.resolve())