💡 Команды для Python по работе с файлами и файловой системой
▍Создание директории
Ну а теперь самое время создать директорию с именем test_dir внутри рабочей директории. Для этого можно использовать функцию os.mkdir():
▍Создание директории
Ну а теперь самое время создать директорию с именем test_dir внутри рабочей директории. Для этого можно использовать функцию os.mkdir():
os.mkdir('test_dir')
Рекомендуется всегда проверять наличие каталога с определенным названием перед созданием нового:if not os.path.exists('test_dir'):
os.mkdir('test_dir')
Еще один совет по созданию каталогов. Иногда нам нужно создать подкаталоги с уровнем вложенности 2 или более. Если мы все еще используем os.mkdir (), нам нужно будет сделать это несколько раз. В этом случае мы можем использовать os.makedirs (). Эта функция создаст все промежуточные каталоги так же, как флаг mkdir -p в системе Linux:os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))
Daily Coding #советы #coding #python💡 Команды для Python по работе с файлами и файловой системой
▍Показываем содержимое директории
Еще одна полезная команда — os.listdir(). Она показывает все содержимое каталога.
Команда отличается от os.walk (), где последний рекурсивно показывает все, что находится «под» каталогом. os.listdir () намного проще в использовании, потому что просто возвращает список содержимого:
▍Показываем содержимое директории
Еще одна полезная команда — os.listdir(). Она показывает все содержимое каталога.
Команда отличается от os.walk (), где последний рекурсивно показывает все, что находится «под» каталогом. os.listdir () намного проще в использовании, потому что просто возвращает список содержимого:
os.listdir('sample_data')
В некоторых случаях нужно что-то более продвинутое — например, поиск всех CSV-файлов в каталоге «sample_data». В этом случае самый простой способ — использовать встроенную библиотеку glob:from glob import globlist(glob(os.path.join('sample_data', '*.csv')))
Daily Coding #советы #coding #python💡 Команды для Python по работе с файлами и файловой системой
▍Перемещение файлов | Часть 1
Время попробовать переместить файлы из одной папки в другую. Рекомендованный способ — еще одна встроенная библиотека
Сейчас попробуем переместить все CSV-файлы из директории «sample_data» в директорию «test_dir». Ниже — пример кода для выполнения этой операции:
Но обе они недостаточно «умные», чтобы позволить перемесить файлы в каталог.
Чтобы все это работало, нужно явно указать имя файла в месте назначения. В следующей части рассмотрим код, который это позволяет сделать, а также другие функции.
Daily Coding #советы #coding #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
Из прошлой части: Чтобы все это работало, нужно явно указать имя файла в месте назначения.
Ниже — код, который это позволяет сделать:
Другая функция,
Еще один минус — в том, что обе функции не поддерживают перемещение файлов из разных файловых систем, в отличие от
Поэтому лучше использовать
Daily Coding #советы #coding #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(Daily Coding #советы #coding #python
os.path.join('sample_data', 'README.md'),
os.path.join('test_dir')
)
💡 Команды для Python по работе с файлами и файловой системой
▍Удаление файлов и папок
Разберёмся с процедурой удаления файлов и папок. Нам здесь снова поможет библиотека OS.
Когда нужно удалить файл, нужно воспользоваться командой os.remove():
Daily Coding #советы #coding #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