Daily Coding 🔥
8.73K subscribers
1.9K photos
6 videos
1 file
1.74K links
Канал, который научит вас программировать лучше и эффективнее.

Интересные задачи, обучающие статьи, советы по стилю кода и многое другое.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/dailycoding
Download Telegram
💡 Команды для Python по работе с файлами и файловой системой

▍Перемещение файлов
| Часть 1

Время попробовать переместить файлы из одной папки в другую. Рекомендованный способ — еще одна встроенная библиотека shutil.

Сейчас попробуем переместить все CSV-файлы из директории «sample_data» в директорию «test_dir». Ниже — пример кода для выполнения этой операции:

import shutilfor file in list(glob(os.path.join('sample_data', '*.csv'))):
shutil.move(file, 'test_dir')

Кстати, есть два способа выполнить задуманное. Например, мы можем использовать библиотеку OS, если не хочется импортировать дополнительные библиотеки. Как os.rename, так и os.replace подходят для решения задачи.

Но обе они недостаточно «умные», чтобы позволить перемесить файлы в каталог.

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

Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой

▍Перемещение файлов
| Часть 2

Из прошлой части:
Чтобы все это работало, нужно явно указать имя файла в месте назначения.

Ниже — код, который это позволяет сделать:

for file in list(glob(os.path.join('test_dir', '*.csv'))):
os.rename(
file,
os.path.join(
'sample_data',
os.path.basename(file)
))

Здесь функция os.path.basename() предназначена для извлечения имени файла из пути с любым количеством компонентов.

Другая функция, os.replace(), делает то же самое. Но разница в том, что os.replace() не зависит от платформы, тогда как os.rename() будет работать только в системе Unix / Linux.

Еще один минус — в том, что обе функции не поддерживают перемещение файлов из разных файловых систем, в отличие от shutil.

Поэтому лучше использовать shutil.move() для перемещения файлов.

Daily Coding #советы #coding #python
👍1
💡 Команды для Python по работе с файлами и файловой системой

▍Копирование файлов

Аналогичным образом shutil подходит и для копирования файлов по уже упомянутым причинам.

Если нужно скопировать файл README.md из папки «sample_data» в папку «test_dir», поможет функция shutil.copy():

shutil.copy(
os.path.join('sample_data', 'README.md'),
os.path.join('test_dir')
)

Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой

▍Удаление файлов и папок

Разберёмся с процедурой удаления файлов и папок. Нам здесь снова поможет библиотека OS.

Когда нужно удалить файл, нужно воспользоваться командой os.remove():

os.remove(os.path.join('test_dir', 'README(1).md'))

Если требуется удалить каталог, на помощь приходит os.rmdir():

os.rmdir(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))

Продолжение следует...

Daily Coding #советы #coding #python