Python Language
Модуль os
Поиск…
Вступление
Этот модуль обеспечивает переносимый способ использования функциональных возможностей, зависящих от операционной системы.
Синтаксис
- import os
параметры
параметр | подробности |
---|---|
Дорожка | Путь к файлу. Сепаратор пути может быть определен os.path.sep . |
Режим | Желаемое разрешение в восьмеричном (например, 0700 ) |
Создать каталог
os.mkdir('newdir')
Если вам нужно указать разрешения, вы можете использовать необязательный аргумент mode
:
os.mkdir('newdir', mode=0700)
Получить текущий каталог
Используйте os.getcwd()
:
print(os.getcwd())
Определите имя операционной системы
Модуль os
предоставляет интерфейс для определения того, какой тип операционной системы работает в настоящий момент.
os.name
В Python 3 это может вернуть одно из следующих:
-
posix
-
nt
-
ce
-
java
Более подробную информацию можно получить из sys.platform
Удалить каталог
Удалите каталог по path
:
os.rmdir(path)
Вы не должны использовать os.remove()
для удаления каталога. Эта функция предназначена для файлов, и использование ее в каталогах приведет к OSError
Следуйте символической ссылке (POSIX)
Иногда вам нужно определить цель символической ссылки. os.readlink
сделает следующее:
print(os.readlink(path_to_symlink))
Изменение разрешений на файл
os.chmod(path, mode)
где mode
- это требуемое разрешение, в восьмеричном.
makedirs - создание рекурсивного каталога
Для локального каталога со следующим содержимым:
└── dir1
├── subdir1
└── subdir2
Мы хотим создать тот же subdir1, subdir2 под новым каталогом dir2, который еще не существует.
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
Выполнение этого результата
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 создается только в первый раз, когда это необходимо, для создания subdir1.
Если бы мы использовали os.mkdir вместо этого, у нас было бы исключение, потому что dir2 еще не существовало бы.
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
os.makedirs не понравится, если целевой каталог уже существует. Если мы снова запустим его:
OSError: [Errno 17] File exists: './dir2/subdir1'
Однако это можно легко устранить, поймав исключение и проверив, что каталог создан.
try:
os.makedirs("./dir2/subdir1")
except OSError:
if not os.path.isdir("./dir2/subdir1"):
raise
try:
os.makedirs("./dir2/subdir2")
except OSError:
if not os.path.isdir("./dir2/subdir2"):
raise