logo

Модуль ОС на Python із прикладами

The Модуль ОС на Python надає функції для взаємодії з операційною системою. ОС поставляється зі стандартними службовими модулями Python. Цей модуль забезпечує портативний спосіб використання залежних від операційної системи функцій.

The *os* і *os.path* модулі містять багато функцій для взаємодії з файловою системою.

Функції модуля Python-OS

Тут ми обговоримо деякі важливі функції модуля Python os:



  • Обробка поточного робочого каталогу
  • Створення Довідника
  • Створення списку файлів і каталогів за допомогою Python
  • Видалення каталогу або файлів за допомогою Python

Обробка поточного робочого каталогу

Розглянемо Поточний робочий каталог (CWD) як папку, де працює Python. Щоразу, коли файли викликаються лише за їх іменем, Python припускає, що він починається в CWD, що означає, що посилання лише за іменем буде успішним, лише якщо файл знаходиться в CWD Python.

Примітка: Папка, у якій виконується сценарій Python, називається поточним каталогом. Це не шлях, де розташований сценарій Python.

Отримання поточного робочого каталогу

Щоб отримати розташування поточного робочого каталогу os.getcwd() використовується.

приклад: Цей код використовує ' os'> модуль для отримання та друку поточного робочого каталогу (CWD) сценарію Python. Він отримує CWD за допомогою ' os.getcwd()'> а потім друкує його на консолі.

Python
import os cwd = os.getcwd() print('Current working directory:', cwd)>

Вихід:

Current working directory: /home/nikhil/Desktop/gfg>

Зміна поточного робочого каталогу

Щоб змінити поточний робочий каталог (CWD) os.chdir() використовується метод. Цей метод змінює CWD на вказаний шлях. Він приймає лише один аргумент як новий шлях до каталогу.

Примітка: Поточний робочий каталог – це папка, в якій працює сценарій Python.

приклад: Код двічі перевіряє та відображає поточний робочий каталог (CWD): до та після зміни каталогу на один рівень вище за допомогою os.chdir('../')> . Він надає простий приклад того, як працювати з поточним робочим каталогом у Python.

Python
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()>

Вихід:

Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>

Створення Довідника

Існують різні методи, доступні в модулі ОС для створення каталогу. Це –

  • os.mkdir()
  • os.makedirs()

Використання os.mkdir()

З допомогою os.mkdir() Метод у Python використовується для створення каталогу з іменем path із указаним числовим режимом. Цей метод викликає FileExistsError, якщо каталог, який потрібно створити, уже існує.

приклад: Цей код створює два каталоги: techcodeview.com в межах D:/Проекти Pycharm/ довідник і Виродки в межах D:/Проекти Pycharm каталог.

  • Перший каталог створюється за допомогоюos.mkdir()>спосіб без зазначення режиму.
  • Другий каталог створюється тим же методом, але в певному режимі ( 0o666> ) надається, який надає дозволи на читання та запис.
  • Потім код друкує повідомлення про те, що каталоги створено.
Python
import os directory = 'techcodeview.com' parent_dir = 'D:/Pycharm projects/' path = os.path.join(parent_dir, directory) os.mkdir(path) print('Directory '% s' created' % directory) directory = 'Geeks' parent_dir = 'D:/Pycharm projects' mode = 0o666 path = os.path.join(parent_dir, directory) os.mkdir(path, mode) print('Directory '% s' created' % directory)>

Вихід:

Directory 'techcodeview.com' created Directory 'Geeks' created>

Використання os.makedirs()

os.makedirs() метод у Python використовується для рекурсивного створення каталогу. Це означає, що під час створення кінцевого каталогу, якщо відсутній будь-який каталог проміжного рівня, метод os.makedirs() створить їх усі.

приклад: Цей код створює два каталоги, Ніхіл і в , у різних батьківських каталогах. Він використовуєos.makedirs>функція для забезпечення створення батьківських каталогів, якщо вони не існують.

Він також встановлює дозволи для в каталог. Код друкує повідомлення для підтвердження створення цих каталогів

Python
import os directory = 'Nikhil' parent_dir = 'D:/Pycharm projects/GeeksForGeeks/Authors' path = os.path.join(parent_dir, directory) os.makedirs(path) print('Directory '% s' created' % directory) directory = 'c' parent_dir = 'D:/Pycharm projects/techcodeview.com/a/b' mode = 0o666 path = os.path.join(parent_dir, directory) os.makedirs(path, mode) print('Directory '% s' created' % directory)>

Вихід:

Directory 'Nikhil' created Directory 'c' created>

Створення списку файлів і каталогів за допомогою Python

Існує os.listdir() метод у Python використовується для отримання списку всіх файлів і каталогів у вказаному каталозі. Якщо ми не вкажемо жодного каталогу, буде повернено список файлів і каталогів у поточному робочому каталозі.

приклад: Цей код містить список усіх файлів і каталогів у кореневому каталозі (/) . Він використовуєos.listdir>функція для отримання списку файлів і каталогів у вказаному шляху, а потім друкує результати.

Python
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)>

Вихід:

Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr',  'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>

Видалення каталогу або файлів за допомогою Python

Модуль ОС надає різні методи для видалення каталогів і файлів у Python. Це –

  • Використання os.remove()
  • Використання os.rmdir()

Використання методу os.remove().

os.remove() метод у Python використовується для видалення або видалення шляху до файлу. Цей метод не може видалити або видалити каталог. Якщо вказаний шлях є каталогом, то OSError буде викликано методом.

приклад: Припустимо, файли, що містяться в папці:

Цей код видаляє файл із назвою file1.txt із указаного розташування D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Він використовуєos.remove>для видалення файлу за вказаним шляхом.

Python
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>

Вихід:


Використання os.rmdir()

os.rmdir() метод у Python використовується для видалення або видалення порожнього каталогу. OSError виникне, якщо вказаний шлях не є порожнім каталогом.

приклад: Припустимо, каталоги є

Цей код намагається видалити каталог під назвою Виродки розташований за адресою D:/Проекти Pycharm/ .

Він використовуєos.rmdir>функцію видалення каталогу. Якщо каталог порожній, він буде видалений. Якщо він містить файли або підкаталоги, ви можете зіткнутися з помилкою.

Python
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>

Вихід:

Часто використовувані функції

Використання функції os.name

Ця функція дає назву імпортованого модуля, що залежить від операційної системи . Наразі зареєстровано такі назви: «posix», «nt», «os2», «ce», «java» та «riscos».

Python
import os print(os.name)>

Вихід:

posix>

Примітка: Це може давати різний вихід для різних інтерпретаторів, наприклад «posix», коли ви запускаєте код тут.

Використання функції os.error

Всі функції в цьому модулі піднімаються OSError у разі недійсних або недоступних імен файлів і шляхів, або інших аргументів, які мають правильний тип, але не приймаються операційною системою. os.error — це псевдонім для вбудованого винятку OSError.

Цей код читає вміст файлу з іменем «GFG.txt» . Він використовує a ' спробуйте…крім ' блок для обробки потенційних помилок, зокрема « IOError ' це може статися, якщо є проблема з читанням файлу.

Якщо станеться помилка, буде надруковано повідомлення про те, Проблема з читанням: GFG.txt.

Python
import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)>

Вихід:

Problem reading: GFG.txt>

Використання функції os.popen().

Цей метод відкриває канал до або від команди. Повернене значення можна прочитати або записати залежно від того, чи є режим «r» або «w» .
Синтаксис:

 os.popen(command[, mode[, bufsize]])>

Параметри mode & bufsize не є необхідними параметрами, якщо вони не надані, за замовчуванням береться «r» для режиму.

Цей код відкриває файл з назвою «GFG.txt» в режимі запису, пише Привіт до нього, а потім читає та друкує його вміст. Використання os.popen> не рекомендується, і для цих завдань використовуються стандартні файлові операції.

Python
import os fd = 'GFG.txt' file = open(fd, 'w') file.write('Hello') file.close() file = open(fd, 'r') text = file.read() print(text) file = os.popen(fd, 'w') file.write('Hello')>

Вихід:

Hello>

Примітка: Результати для popen() не відображатимуться, у файл будуть внесені прямі зміни.

Використання функції os.close().

Закрити файловий дескриптор fd. Файл, відкритий за допомогою open(), можна закрити лише за допомогою close(). Але файл, відкритий через os.popen(), можна закрити за допомогою close() або os.close() . Якщо ми спробуємо закрити файл, відкритий за допомогою open(), за допомогою os.close(), Python видасть TypeError.

Python
import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>

Вихід:

Traceback (most recent call last):  File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in   os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>

Примітка: Така сама помилка може не виникнути через неіснуючий файл або привілей дозволу.

Використання функції os.rename().

Файл old.txt можна перейменувати на new.txt за допомогою функції os.rename() . Ім'я файлу змінюється, лише якщо файл існує і користувач має достатні права для зміни файлу.

Python
import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>

Вихід:

Traceback (most recent call last):  File 'C:UsersGFGDesktopModuleOSGeeksForGeeksOSFile.py', line 3, in   os.rename(fd,'New.txt') FileNotFoundError: [WinError 2] The system cannot find the file specified: 'GFG.txt' ->'New.txt'>

Ім'я файлу GFG.txt існує, тому, коли os.rename() використовується вперше, файл буде перейменовано.

Після другого виклику функції os.rename() існує файл New.txt, а не GFG.txt, тому Python видає FileNotFoundError.

Використання функції os.remove().

За допомогою модуля Os ми можемо видалити файл у нашій системі за допомогою os.remove() метод. Щоб видалити файл, нам потрібно передати назву файлу як параметр.

Python
import os #importing os module. os.remove('file_name.txt') #removing the file.>

Модуль ОС забезпечує нам рівень абстракції між нами та операційною системою.

Коли ми працюємо з os модуль завжди вказує абсолютний шлях залежно від операційної системи, код може працювати на будь-якій ОС, але нам потрібно точно змінити шлях. Якщо ви спробуєте видалити файл, який не існує, ви отримаєте FileNotFoundError .

Використання функції os.path.exists().

Цей метод перевірить, чи існує файл, передаючи ім'я файлу як параметр. Модуль ОС має підмодуль під назвою PATH, за допомогою якого ми можемо виконувати багато інших функцій.

Python
import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)>

Вихід:

False>

Як і в наведеному вище коді, файл не існує, він видасть результат False. Якщо файл існує, він видасть нам результат True.

Використання функції os.path.getsize().

в os.path.getsize( ), python дасть нам розмір файлу в байтах. Щоб використовувати цей метод, нам потрібно передати назву файлу як параметр.

Python
import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')>

Вихід:

знайти в рядку c++
Size of the file is 192 bytes.>