Рубрики
Без рубрики

Модуль Python Cutil

Модуль Python Cutil Module, файл Python Coply Copy, файл Python Watchil Удалить файл и каталог, каталог Python Coply Copy с контентом и метаданными, файл поиска Python Phoolil, урок Python Shutil.

Автор оригинала: Pankaj Kumar.

Когда вам нужно работать с файловыми операциями высокого уровня, такими как копирование содержимого файла, создайте новую копию файла и архивирования, модуль Python Cutil – это путь.

Python Pownil.

Модуль Python Cutil Module позволяет легко работать с файловыми объектами и без погружения в файловые объекты. Он заботится о низкоуровневой семантике, такую как создание объектов файлов, закрывая файлы, как только они будут скопированы, и позволяет нам сосредоточиться на бизнес-логике нашей программы. Давайте посмотрим модуль забивки в действии здесь.

Пример Python Pownil

Давайте посмотрим на разные примеры, чтобы понять модуль забивки.

Копировать файл

Использование Watchil’s copyfile () Функция, легко скопировать файл в новый файл только в текущем каталоге.

Вот образец программы о том, как мы можем сделать новый клон существующего файла в нашем текущем каталоге:

import os
import shutil

print('BEFORE:', os.listdir('.'))
shutil.copyfile('file_copy.py', 'file_copy.py.copy')
print('AFTER:', os.listdir('.'))

Давайте посмотрим на вывод этой программы:

Копировать файл в текущий каталог

Обратите внимание, что copyfile () Функция принимает имя нового файла для создания.

Копирование файлов в другой каталог

Использование Watchil’s Копировать () Функция, легко скопировать файл в другой каталог.

Давайте посмотрим на фрагмент кода о том, как это можно сделать:

import os
import shutil

os.mkdir('journaldev')
print('BEFORE:', os.listdir('journaldev'))
shutil.copy('file_copy.py', 'journaldev')
print('AFTER:', os.listdir('journaldev'))

Давайте посмотрим на вывод этой программы:

Копировать файл в новый каталог

Эта функция отличается от copyfile () Функция, поскольку позже принимает имя файла в качестве параметра, тогда как Копировать () Функция принимает имя каталога в качестве ввода.

Наконец, Разрешения файла также клонированы При копировании файла с функциями, но метаданные не копируются, что означает, что созданный новый файл будет иметь свежее время, вместо исходного времени исходного файла.

Копирование файла с метаданными

Если вам нужно сделать точный клон файла, а также с разрешениями и метаданными файлами, мы можем использовать copy2 () функция. Обратите внимание, что это может не работать полностью на системе на основе POSIX Отказ

Вот образец программы на том, как мы используем эту функцию::

import os
import shutil
import time

def file_metadata(file_name):
    stat_info = os.stat(file_name)
    print('  Mode    :', oct(stat_info.st_mode))
    print('  Created :', time.ctime(stat_info.st_ctime))
    print('  Accessed:', time.ctime(stat_info.st_atime))
    print('  Modified:', time.ctime(stat_info.st_mtime))

os.mkdir('journaldev')
print('SOURCE FILE:')
file_metadata('file_copy.py')

shutil.copy2('file_copy.py', 'journaldev')

print('DESTINATION FILE:')
file_metadata('journaldev/file_copy.py')

Мы запускаем эту функцию в системе POSIX, поэтому Сохранено только режим файла и модифицированной даты :

Скопируйте файл метаданные (как можно больше)

В других системах даже созданное и доступное время достигло бы точно.

Репликация полного каталога

С copytree () Функция, можно полностью реплировать дерево каталога рекурсивно. Это означает, что если в каталоге есть больше каталогов, этот каталог также будет клонирован.

Давайте посмотрим на фрагмент кода о том, как мы можем клонировать полный каталог:

import pprint
import shutil
import os

shutil.copytree('../shutil', './journaldev')

print('\nAFTER:')
pprint.pprint(os.listdir('./journaldev'))

Давайте посмотрим на вывод этой программы:

Копировать каталог рекурсивно

Обратите внимание, что мы не распечатаем каталог journaldev содержимое до имени каталога copytree () Функция принимает в качестве ввода Не должно существовать перед запуском этой команды Отказ

Удаление каталога

Еще один простейший пример с Шусил Удаление полного каталога. Не нужно рекурсивно удалять файлы или закрывать соединения по обработке файлов.

Вот образец программы на том, насколько легко она с rmtree () Функция:

import pprint
import shutil
import os

print('BEFORE:')
pprint.pprint(os.listdir('.'))

shutil.rmtree('journaldev')

print('\nAFTER:')
pprint.pprint(os.listdir('.'))

Здесь мы распечатаем содержимое текущего каталога. Перед запуском скрипта journaldev Каталог существует в текущей папке. После запуска скрипта он удаляется вместе с содержимым. Давайте посмотрим на вывод этой программы:

Удалить полное дерево каталога

Нахождение файлов

какие () Функция представляет отличный инструмент для поиска файла на вашем компьютере, который присутствует на пути.

Вот образец программы с примером файла:

import shutil

print(shutil.which('bsondump'))
print(shutil.which('no-such-program'))

Давайте посмотрим на вывод этой программы:

Найти файл на пути

Мониторинг файловой системы

Мы даже можем получить информацию о том, сколько присутствует в нашей файловой системе с Simplete Call с использованием disk_usage () функция.

Вот образец программы:

import shutil

total_b, used_b, free_b = shutil.disk_usage('.')

gb = 10 ** 9

print('Total: {:6.2f} GB'.format(total_b / gb))
print('Used : {:6.2f} GB'.format(used_b / gb))
print('Free : {:6.2f} GB'.format(free_b / gb))

Давайте посмотрим на вывод этой программы:

Файловое пространство

Заключение

В этом уроке мы изучали, как мы можем работать с файловыми операциями высокого уровня, такими как копирование содержимого файла, создайте новую копию файла и т. Д., Без дайвинга в комплексные операции по обработке файлов с Шусил Модуль в Python.

Читайте больше сообщений Python здесь.

Загрузите исходный код