** pathlib ** L'utilisez vous? Si vous ne l'avez pas encore utilisé, veuillez l'utiliser une fois. Qu'est-ce que pathlib, c'est que vous pouvez manipuler les chemins. Je pense que tout le monde utilise ** os.path **, mais vous pouvez faire presque la même chose que os.path avec ** pathlib **. De plus, pathlib est un module Python standard.
Si vous êtes intéressé, veuillez le vérifier.
summary
pathlib
pathlib est un ** chemin de système de fichiers orienté objet **. Voyons comment l'utiliser.
Vous pouvez créer un objet Path avec Path ()
>>> from pathlib import Path
>>> Path()
PosixPath('.')
>>> Path('data')
PosixPath('data')
>>> 
>>> Path('data/image_0001.jpg')
PosixPath('data/image_0001.jpg')
>>> 
Utilisez ʻis_dir () , ʻis_file ()
>>> a = Path('data')
>>> a.is_dir()
True
>>> b = Path('data/image_0001.jpg')
>>> b.is_file()
True
>>> 
>>> p = Path('data/img0.jpg')
>>> p.exists()
False
Utilisez .touch ()
>>> p = Path('data/img0.jpg')
>>> p.exists()
False
>>> p.touch()
>>> p.exists()
True
Utilisez ʻiterdir () ʻouglob ()
>>> a = Path('data')
>>> list(a.iterdir())
[PosixPath('data/img0.jpg'), 
PosixPath('data/image_0004.jpg'),
PosixPath('data/image_0005.jpg'), 
PosixPath('data/image_0001.jpg'), 
PosixPath('data/image_0002.jpg'), 
PosixPath('data/image_0003.jpg')]
>>> 
>>> list(a.glob('*'))
[PosixPath('data/img0.jpg'), 
PosixPath('data/image_0004.jpg'), 
PosixPath('data/image_0005.jpg'), 
PosixPath('data/image_0001.jpg'), 
PosixPath('data/image_0002.jpg'), 
PosixPath('data/image_0003.jpg')]
>>> 
Convertir en chaîne avec str
>>> [str(p) for p in a.iterdir()]
['data/img0.jpg', 
'data/image_0004.jpg', 
'data/image_0005.jpg', 
'data/image_0001.jpg', 
'data/image_0002.jpg', 
'data/image_0003.jpg']
>>> 
Utilisez l'attribut name
>>> [p.name for p in a.iterdir() if p.is_file()]
['img0.jpg', 
'image_0004.jpg', 
'image_0005.jpg', 
'image_0001.jpg', 
'image_0002.jpg', 
'image_0003.jpg']
>>> 
Utilisez l'attribut stem
>>> [p.stem for p in a.iterdir() if p.is_file()]
['img0', 
'image_0004', 
'image_0005', 
'image_0001', 
'image_0002', 
'image_0003']
>>> 
Utilisez l'attribut shuffix
>>> [p.suffix for p in a.iterdir() if p.is_file()]
['.jpg', '.jpg', '.jpg', '.jpg', '.jpg', '.jpg']
>>> 
Utilisez .mkdir ()
>>> c = Path('test')
>>> c.exists()
False
>>> c.mkdir()
>>> c.exists()
True
>>> 
Défini sur parents = True
>>> Path('test/data/001').mkdir(parents=True)
Définir ʻexist_ok = True`
>>> Path('test/data').mkdir(exist_ok=True)
Concaténer avec / à l'objet Path
Vous pouvez faire la même chose avec / que ʻos.path.join () `
>>> d = Path('data')
>>> d / 'train' / '001'
PosixPath('data/train/001')
Utilisez parent
>>> b
PosixPath('data/image_0001.jpg')
>>> b.parent
PosixPath('data')
Cette fois, je l'ai rédigé comme mémoire pour ne pas oublier ceux que j'utilise souvent. J'espère que ce sera utile autant que possible.
Recommended Posts