Модуль os
позволяет работать с файловой системой, с окружением, управлять процессами.
Мы рассмотрим лишь несколько полезных возможностей. За более полным описанием возможностей модуля Вы можете обратиться к или .
Модуль os позволяет создавать каталоги:
In [1]: import os In [2]: os.mkdir('test') In [3]: ls -ls total 0 0 drwxr-xr-x 2 nata nata 68 Jan 23 18:58 test/
Кроме того, в модуле есть соответствующие проверки на существование. Например, если попробовать повторно создать каталог, возникнет ошибка:
In [4]: os.mkdir('test') --------------------------------------------------------------------------- FileExistsError Traceback (most recent call last) <ipython-input-4-cbf3b897c095> in <module>() ----> 1 os.mkdir('test') FileExistsError: [Errno 17] File exists: 'test'
В таком случае пригодится проверка os.path.exists
:
In [5]: os.path.exists('test') Out[5]: True In [6]: if not os.path.exists('test'): ...: os.mkdir('test') ...:
Метод listdir позволяет посмотреть содержимое каталога:
In [7]: os.listdir('.') Out[7]: ['cover3.png', 'dir2', 'dir3', 'README.txt', 'test']
С помощью проверок os.path.isdir
и os.path.isfile
можно получить отдельно список файлов и список каталогов:
In [8]: dirs = [ d for d in os.listdir('.') if os.path.isdir(d)] In [9]: dirs Out[9]: ['dir2', 'dir3', 'test'] In [10]: files = [ f for f in os.listdir('.') if os.path.isfile(f)] In [11]: files Out[11]: ['cover3.png', 'README.txt']
Также в модуле есть отдельные методы для работы с путями:
In [12]: os.path.basename(file) Out[12]: 'README.md' In [13]: os.path.dirname(file) Out[13]: 'Programming/PyNEng/book/25_additional_info' In [14]: os.path.split(file) Out[14]: ('Programming/PyNEng/book/25_additional_info', 'README.md')