Работа с файлами в Python с помощью модуля OS

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

Перенос файлов между серверами по протоколу ftp.

Копирование всех файлов без исключений директорий:

lftp -u name -e 'mirror to from' server

name — имя пользователя на удалённом сервере

to — директория, куда надо копировать файлы

from — директория, откуда надо копировать на удалённом сервере

server — адрес или хостнейм удалённого сервера с которого нужно получить данные

Копирование всех файлов, исключая директорию tmp:

lftp -u name -e 'mirror —exclude tmp to from' server

name — имя пользователя на удалённом сервере

to — директория, куда надо копировать файлы

from — директория, откуда надо копировать на удалённом сервере

server — адрес или хостнейм удалённого сервера с которого нужно получить данные

Копирование файлов по одному между серверами:

lftp -u name -e "get tmp/" server

name — имя пользователя на удалённом сервере

tmp/ — путь к файлу, который нужно скопировать

server — адрес или хостнейм удалённого сервера с которого нужно получить данные

Работа с базами данных

Командная строка Ubuntu

Работать в Ubuntu и других Linux-подобных операционных системах можно с помощью двух разных интерфейсов — графического интерфейса и командной строки.

Графический интерфейс пользователя (GUI — Graphical User Interface) — это привычное многим управление с помощью рабочего стола, графических окон, меню и кнопок. Пользователь может щелчками мыши открывать программы, копировать и удалять файлы, создавать папки и т. д.

Читайте также:  Учет рабочего времени сотрудников: когда время — действительно деньги

Другой интерфейс — это командная строка (CLI — Command Line Interface). Пользователь вводит в неё определённые команды (набор букв, цифр и символов) с помощью клавиатуры, и компьютер запускает соответствующие процессы.

Открыть командную строку в Линукс-системах можно через консоль или терминал. В Ubuntu консоль запускается при загрузке системы. Терминал — это тоже консоль, но уже в графической оболочке. Его можно запустить, набрав слово Терминал в поисковой строке ОС, или через комбинацию клавиш Ctrl+Alt+T.

Консоль и терминал обрабатывают команды с помощью программной оболочки: в Ubuntu это командный интерпретатор bash. Он распознаёт команды, которые пользователь ввёл в командной строке, и выполняет их.

Ниже рассмотрим, из чего состоит команда, а также приведём используемый в bash список команд.

Установка программ

Одна из самых востребованных и удобных операций, которые выполняют в коммандной строке — это установка программ. Если вам приходилось работать с такими программами, как Ubuntu Software Center, или Synaptics Package Manager — все они красивые оболочки, запускающие, по мере необходимости, те-же самые консольные програмы.

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

Например, для того, чтоб одним махом установить браузеры Mozilla Firefox, Chromium и Opera, достаточно выполнить одну команду:

sudo apt-get install firefox chromium-browser opera

В предыдущей команде использована комнда sudo, которая позволяет выпонить следующую за ней команду с правами «Рута» (супер администратора в мире Linux). За ней идет команда apt-get, которая принимает в качестве параметров install firefox chromium-browser opera, что означает «установи все программы, идущие после параметра install».

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

Читайте также:  Как вставить pdf в статью?

Таким образом, сразу после установки Ubuntu, или другого дистрибутива, одной командой вы можете установить все необходимые программы — все, что для этого нужно — это знать название пакетов. Даже, если вы не помните название пакета, вам на помощь прийдет на помощь функция автозавершения, рассмотренная далее в статье.

Back to top

Синтаксис grep и find

Начнём с оператора find. Синтаксис файловой поисковой команды выглядит так:

find [где искать] [параметры] [-опции] [действия]

Некоторые употребительные параметры:

  • -depth : поиск в текущей папке и подкаталогах;
  • -version : вывести версию команды;
  • -print : показывать полные имена файлов (в Linux они могут быть сколь угодно большими);
  • -type f : поиск исключительно файлов;
  • -type d – поиск только директорий (папок).
Синтаксис grep и find

Перечень доступных опций (указываются через дефис):

  • name : файловый поиск по имени;
  • user : поиск по имени владельца файла;
  • perm : по атрибуту «режим доступа»;
  • mtime : по времени последнего изменения (редактирования) файла;
  • group : по группе;
  • atime : по дате последнего открытия файла;
  • newer : поиск файла с датой, более новой, чем заданная в шаблоне директивы;
  • size : по размеру файла в байтах;
  • nouser : поиск файлов, не имеющих введённого атрибута «владелец».

Синтаксис grep:

grep [опции] шаблон [где искать]

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

В шаблоне указывается, что нужно искать, используя непосредственно заданную строку или регулярное выражение.

Возможность использования регулярных выражений позволяет существенно расширить возможности поиска. Указание стандартного вывода может оказаться полезным, если стоит задача отфильтровать ошибки, записанные в логи, или для поиска PID процесса в результатах выполнения команды ps, которые могут быть многостраничными.

Синтаксис grep и find

Рассмотрим наиболее употребительные параметры grep:

  • -b : выводить номер блока перед выдачей результирующей строки;
  • -c : необходимо подсчитать число вхождений искомого фрагмента;
  • -i : поиск без учёта регистра;
  • -n : выдавать на стандартное устройство вывода номер строки, в которой найден искомый фрагмент или шаблон;
  • – l : в результате выдачи должны присутствовать только имена файлов с найденным поисковым фрагментом;
  • -s : игнорировать вывод ошибок;
  • -w : поиск фрагмента, опоясанного с двух сторон пробелами;
  • -v : инвертированный поиск, то есть отображение всех строк, не содержащих заданный фрагмент;
  • -e : параметр указывает, что далее следует регулярное выражение, имеющее собственный синтаксис;
  • -An : вывод искомого фрагмента и предыдущих n строк;
  • -Bn : то же, но со строками, идущими после шаблона.
Читайте также:  Контекстное меню Windows – профессиональная настройка

Теперь имеет смысл перейти от теоретической части к практической.3

Команды консоли Ubuntu

В Ubuntu команды используются для выполнения разных задач. Посмотреть список всех команд и дополнительную информацию вы можете в документации Ubuntu.

Мы рассмотрим основные команды терминала Ubuntu, с которыми сталкивается каждый пользователь:

Команда ls

Отображает список всех файлов и папок в той директории, в которой вы находитесь.

Команда cd

Переходит в другую указанную директорию или папку.

Команда cp

Копирует файлы и папки в любое место файловой системы.

Команда mv

Перемещает файлы и папки в любое место файловой системы.

Команда rm

Удаляет файлы и папки.

Команда mkdir

Создаёт новую пустую директорию.

Команда cat

Отображает содержимое файла в консоли.

Команда nano и команда vim

Открывают текстовые редакторы nano и vim, в которых можно редактировать файл прямо в консоли.

Получение информации о файлах

Для получения информации о файле в ОС используется функция (), которая выполняет системный вызов stat() по выбранному пути:

open(«», «w»).write(«Это текстовый файл») # вывести некоторые данные о файле print(os.stat(«»))

Вывод:

_result(st_mode=33206, st_ino=14355223812608232, st_dev=1558443184, st_nlink=1, st_uid=0, st_gid=0, st_size=19, st_atime=1575967618, st_mtime=1575967618, st_ctime=1575966941)

Это вернет кортеж с отдельными метриками. В их числе есть следующие:

    • st_size — размер файла в байтах
    • st_atime — время последнего доступа в секундах (временная метка)
    • st_mtime — время последнего изменения
    • st_ctime — в Windows это время создания файла, а в Linux — последнего изменения метаданных

Для получения конкретного атрибута нужно писать следующим образом:

# например, получить размер файла print(«Размер файла:», os.stat(«»).st_size)

Вывод:

Размер файла: 19

На этой странице больше об атрибутах.