** 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