Люба Снежкова
Эксперт по предмету «Информатика»
Задать вопрос автору статьи
Определение 1
Файл – логически связанная совокупность данных или программ, для размещения которой во внешней памяти выделяется именованная область.
Файл служит в качестве учетной единицей информации в операционных системах. Все действия с информацией в операционных системах осуществляются над файлами: это может быть ввод с клавиатуры, запись на диск, обработка данных, вывод на экран, печать, копирование и передача информации и пр.
Файл имеет имя и расширение. Имя файла придумывает пользователь. Расширение файла присваивается программой, при помощи которой этот файл создается. По расширению файла определяется формат данных в файле. Файлы могут содержать разнообразные виды и формы представления информации: числа, программы, тексты, рисунки, таблицы, чертежи и т.п. Особенности файлов определяются их форматом.
Открытый файл очень похож на содержащий текст или изображение документ, который можно найти на чьем-либо столе или в канцелярском шкафу. На компьютере файлы отображаются в виде значков, которые помогают легко определить тип файла.
Файлы на компьютере можно создавать, удалять, редактировать, просматривать, хранить, копировать, перемещать. Операционные системы осуществляют помощь пользователю при работе с файлами.
Операционные системы предоставляют графический интерфейс при выполнении команд работы с файлами. При открытии папки с файлами можно изменить представление значков файлов в окне, например, на более мелкие или крупные. Если необходимо видеть данные о файле (вес и дату последнего редактирования файла), то выбирается педставление файлов в виде таблицы, Для такого рода изменений используется кнопка
Рисунок 1.
«Работа с файлами» 👇
на панели инструментов.
Для точной настройки размера значков файлов необходимо перетащить ползунок вверх или вниз и остановиться на наиболе удачном представлении значка файла.
Рисунок 2. Меню “Представления”
Существует возможность упорядочения файлов различными способами. Например, по дате или по алфавиту, возможно по тематике и расширению.
Поиск файлов
Для автоматизации поиска файлов существует Поле поиска, где можно вписать критерии поиска.
Рисунок 3.
Поле поиска находится в верхней части каждого окна папки. В результате поиска отображаются файлы, соответствующие заданным условиям в строке поиска.
Поиск файлов можно осуществлять при помощи фильтра поиска (например, по типу файла).
Копирование и перемещение файлов
Для изменения места хранения файлов на компьютере можно использовать контексное меню или воспользоваться методом перетаскивания.
Рисунок 4. Контекстное меню
Для использования метода перетаскивания необходимо открыть две папки, в одной должен находиться исходный файл, а в другую будет происходить перетаскивание. Левой кнопкой мыши файл выделяется и «тащится» в другую.
Рисунок 5.
При использовании метода перетаскивания иногда файл или папка копируются, а иногда перемещаются. Если перетаскивание происходит между папками одного жесткого диска, то файлы перемещаются. Таким образом файл останется только в одной папке, копия его не останется в папке из которой файл перетаскивался. Если перетаскивание происходит в папку сети или на съёмный носитель, то элемент файл копируется.
Создание и удаление файлов
Самый простой способ создать новый файл — воспользоваться установленной на компьютере программой. Например, можно создать текстовый документ в программе обработки текста Word Блокнот, либо создать рисунок в программе Paint.
Некоторые программы создают файл при запуске. Например, при запуске редактора WordPad открывается чистая страница. Она представляет собой пустой (и несохраненный) файл.
По умолчанию большинство программ сохраняет файлы в типовых папках, таких как “Мои документы” и “Мои рисунки”, что облегчает поиск этих файлов в дальнейшем.
Ненужный файл можно удалить из компьютера для экономии места. Для удаления файла можно открыть содержащую его папку, выделить файл и нажать клавишу DELETE, либо воспользоваться контексным меню.
Удаляемый файл временно сохраняется в корзине – системной папки (файле). Корзину считают средством безопасности, позволяющей восстановить случайно удаленные файлы и папки.
Открытие существующего файла
Открыть любой файл можно двойным щелчком мыши. Файл обычно открывается в программе, которая использовалась для его создания или изменения. Для открытия файлов программа определяется по расширению файла или из списка программ открытия такого типа файлов. Для изменения программы открытия файлов требуется в контексном меню выбрать пункт Открыть с помощью.
Находи статьи и создавай свой список литературы по ГОСТу
Поиск по теме
Для удобства обращения информация в запоминающих устройствах хранится в виде файлов.
Файл – именованная область внешней памяти, выделенная для хранения массива данных. Данные, содержащиеся в файлах, имеют самый разнообразный характер: программы на алгоритмическом или машинном языке; исходные данные для работы программ или результаты выполнения программ; произвольные тексты; графические изображения и т. п.
Каталог (папка, директория) – именованная совокупность байтов на носителе информации, содержащая название подкаталогов и файлов, используется в файловой системе для упрощения организации файлов.
Файловой системой называется функциональная часть операционной системы, обеспечивающая выполнение операций над файлами. Примерами файловых систем являются FAT (FAT – File Allocation Table, таблица размещения файлов), NTFS, UDF (используется на компакт-дисках).
Существуют три основные версии FAT: FAT12, FAT16 и FAT32. Они отличаются разрядностью записей в дисковой структуре, т.е. количеством бит, отведённых для хранения номера кластера. FAT12 применяется в основном для дискет (до 4 кбайт), FAT16 – для дисков малого объёма, FAT32 – для FLASH-накопителей большой емкости (до 32 Гбайт).
Рассмотрим структуру файловой системы на примере FAT32.
Файловая структура FAT32
Устройства внешней памяти в системе FAT32 имеют не байтовую, а блочную адресацию. Запись информации в устройство внешней памяти осуществляется блоками или секторами.
Сектор – минимальная адресуемая единица хранения информации на внешних запоминающих устройствах. Как правило, размер сектора фиксирован и составляет 512 байт. Для увеличения адресного пространства устройств внешней памяти сектора объединяют в группы, называемые кластерами.
Кластер – объединение нескольких секторов, которое может рассматриваться как самостоятельная единица, обладающая определёнными свойствами. Основным свойством кластера является его размер, измеряемый в количестве секторов или количестве байт.
Файловая система FAT32 имеет следующую структуру.
Нумерация кластеров, используемых для записи файлов, ведется с 2. Как правило, кластер №2 используется корневым каталогом, а начиная с кластера №3 хранится массив данных. Сектора, используемые для хранения информации, представленной выше корневого каталога, в кластеры не объединяются.
Минимальный размер файла, занимаемый на диске, соответствует 1 кластеру.
Загрузочный сектор начинается следующей информацией:
- EB 58 90 – безусловный переход и сигнатура;
- 4D 53 44 4F 53 35 2E 30 MSDOS5.0;
- 00 02 – количество байт в секторе (обычно 512);
- 1 байт – количество секторов в кластере;
- 2 байта – количество резервных секторов.
Кроме того, загрузочный сектор содержит следующую важную информацию:
- 0x10 (1 байт) – количество таблиц FAT (обычно 2);
- 0x20 (4 байта) – количество секторов на диске;
- 0x2С (4 байта) – номер кластера корневого каталога;
- 0x47 (11 байт) – метка тома;
- 0x1FE (2 байта) – сигнатура загрузочного сектора (55 AA).
Сектор информации файловой системы содержит:
- 0x00 (4 байта) – сигнатура (52 52 61 41);
- 0x1E4 (4 байта) – сигнатура (72 72 41 61);
- 0x1E8 (4 байта) – количество свободных кластеров, -1 если не известно;
- 0x1EС (4 байта) – номер последнего записанного кластера;
- 0x1FE (2 байта) – сигнатура (55 AA).
Таблица FAT содержит информацию о состоянии каждого кластера на диске. Младшие 2 байт таблицы FAT хранят F8 FF FF 0F FF FF FF FF (что соответствует состоянию кластеров 0 и 1, физически отсутствующих). Далее состояние каждого кластера содержит номер кластера, в котором продолжается текущий файл или следующую информацию:
- 00 00 00 00 – кластер свободен;
- FF FF FF 0F – конец текущего файла.
Корневой каталог содержит набор 32-битных записей информации о каждом файле, содержащих следующую информацию:
- 8 байт – имя файла;
- 3 байта – расширение файла;
Корневой каталог содержит набор 32-битных записей информации о каждом файле, содержащих следующую информацию:
В случае работы с длинными именами файлов (включая русские имена) кодировка имени файла производится в системе кодировки UTF-16. При этого для кодирования каждого символа отводится 2 байта. При этом имя файла записывается в виде следующей структуры:
- 1 байт последовательности;
- 10 байт содержат младшие 5 символов имени файла;
- 1 байт атрибут;
- 1 байт резервный;
- 1 байт – контрольная сумма имени DOS;
- 12 байт содержат младшие 3 символа имени файла;
- 2 байта – номер первого кластера;
- остальные символы длинного имени.
Далее следует запись, включающая имя файла в формате 8.3 в обычном формате.
Работа с файлами в языке Си
Для программиста открытый файл представляется как последовательность считываемых или записываемых данных. При открытии файла с ним связывается поток ввода-вывода. Выводимая информация записывается в поток, вводимая информация считывается из потока.
Когда поток открывается для ввода-вывода, он связывается со стандартной структурой типа FILE, которая определена в stdio.h. Структура FILE содержит необходимую информацию о файле.
Открытие файла осуществляется с помощью функции fopen(), которая возвращает указатель на структуру типа FILE, который можно использовать для последующих операций с файлом.
name – имя открываемого файла (включая путь),
type — указатель на строку символов, определяющих способ доступа к файлу:
- “r” — открыть файл для чтения (файл должен существовать);
- “w” — открыть пустой файл для записи; если файл существует, то его содержимое теряется;
- “a” — открыть файл для записи в конец (для добавления); файл создается, если он не существует;
- “r+” — открыть файл для чтения и записи (файл должен существовать);
- “w+” — открыть пустой файл для чтения и записи; если файл существует, то его содержимое теряется;
- “a+” — открыть файл для чтения и дополнения, если файл не существует, то он создаётся.
Возвращаемое значение — указатель на открытый поток. Если обнаружена ошибка, то возвращается значение NULL.
Функция fclose() закрывает поток или потоки, связанные с открытыми при помощи функции fopen() файлами. Закрываемый поток определяется аргументом функции fclose().
Возвращаемое значение: значение 0, если поток успешно закрыт; константа EOF, если произошла ошибка.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main() {
FILE *fp;
char name[] = “my.txt”;
if ((fp = fopen(name, “r”)) == NULL)
{
printf(“Не удалось открыть файл”);
getchar();
return 0;
}
// открыть файл удалось
… // требуемые действия над данными
fclose(fp);
getchar();
return 0;
}
Чтение символа из файла:
Аргументом функции является указатель на поток типа FILE. Функция возвращает код считанного символа. Если достигнут конец файла или возникла ошибка, возвращается константа EOF.
Запись символа в файл:
Аргументами функции являются символ и указатель на поток типа FILE. Функция возвращает код считанного символа.
Функции fscanf() и fprintf() аналогичны функциям scanf() и printf(), но работают с файлами данных, и имеют первый аргумент — указатель на файл.
fscanf(поток, “ФорматВвода”, аргументы);
fprintf(поток, “ФорматВывода”, аргументы);
Функции fgets() и fputs() предназначены для ввода-вывода строк, они являются аналогами функций gets() и puts() для работы с файлами.
fgets(УказательНаСтроку, КоличествоСимволов, поток);
Символы читаются из потока до тех пор, пока не будет прочитан символ новой строки ‘n’, который включается в строку, или пока не наступит конец потока EOF или не будет прочитано максимальное количество символов. Результат помещается в указатель на строку и заканчивается нуль- символом ‘’. Функция возвращает адрес строки.
fputs(УказательНаСтроку,поток);
Копирует строку в поток с текущей позиции. Завершающий нуль- символ не копируется.
Пример Ввести число и сохранить его в файле s1.txt. Считать число из файла s1.txt, увеличить его на 3 и сохранить в файле s2.txt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *S1, *S2;
int x, y;
system(“chcp 1251”);
system(“cls”);
printf(“Введите число : “);
scanf(“%d”, &x);
S1 = fopen(“S1.txt”, “w”);
fprintf(S1, “%d”, x);
fclose(S1);
S1 = fopen(“S1.txt”, “r”);
S2 = fopen(“S2.txt”, “w”);
fscanf(S1, “%d”, &y);
y += 3;
fclose(S1);
fprintf(S2, “%dn”, y);
fclose(S2);
return 0;
}
Результат выполнения — 2 файла
Работа с файлами в C++ описана здесь.
Назад: Язык Си
Как вы знаете, файлы — это данные, сохранённые на компьютере или созданные с помощью языков программирования приложения.
Какие же операции можно выполнять с файлами?
- Удаление — это операция, при которой файл из каталога уничтожается.
- Копирование — это операция, при которой файл остаётся в каталоге и создаётся копия в другом каталоге.
- Переименование — это операция, при которой пользователь изменяет собственное имя файла.
- Перемещение — это операция, при которой файл переносится в другой каталог, но его копия не остаётся в исходном.
- Поиск файла — это операция, при которой происходит обнаружение файла по некоторым известным характеристикам (по дате создания, по части имени, по расширению файла).
Как найти файл по неполному имени?
Пример:
мальчик сохранил файл, но не помнил его полное имя. Он запомнил, что написал медведь или медветь. Чтобы найти файл, он задал в поиске такое имя файла: медве?ь. И операционная система обнаружила файл. Мальчик использовал поиск файла по маске.
В маске можно использовать следующие символы:
? (знак вопроса) означает, что ровно один знак пропущен;
* (звёздочка) означает, что пропущена последовательность символов любой длины или вообще пустая последовательность.
При маске *.txt будут найдены все файлы с расширением txt.
При маске m?.* будут найдены файлы, которые начинаются с m, в имени всего два символа, и расширение может быть любое.
Содержание
- Изучение компьютера. Урок №5 — Работа с файлами и папками
- Как создать папку
- Как перемещать и копировать файлы и папки
- Глава 6. Работа с файлами и папками. Буфер обмена
- Буфер обмена
- Как копировать и перемещать файлы в Windows
- Перемещение файла
- Копирование файла
- Работа с группой файлов
- Основы работы с компьютером. Базовые навыки
- Введение
- Операционная система
- Хранение информации на компьютере
- Основные операций с окнами, файлами и папками
- Поиск, просмотр и упорядочение папок в системе Windows
- Просмотр и упорядочение файлов и папок
- Поиск файлов в системе Windows
- Копирование и перемещение файлов и папок
- Создание и удаление файлов
- Открытие существующего файла
- Использование библиотек для доступа к файлам и папкам
- Cтруктура окна системы Windows
Изучение компьютера. Урок №5 — Работа с файлами и папками
Здравствуйте! На прошлом уроке мы рассмотрели такие понятия как папка и файл. Выяснили, что они означают и для чего нужны, а также я обещал научить вас создавать папки, перемещать и копировать в них файлы.
Как создать папку
Это одно из самых легких занятий в операционной системе Windows. Папку можно создать как на рабочем столе, так и в другой уже существующей папке. Для этого вам потребуется на свободной от файлов (значков) области нажать правую кнопку мыши (1), в появившемся меню навести курсор на «Создать» (2) и в подменю выбрать «Папку» (3).
Новая папка появится на том месте, где был курсор мыши. Теперь можно задать ей имя, иначе она будет называться «Новая папка». Переименовать ее можно в любой момент, нужно всего лишь нажать правой кнопкой мыши на папке и выбрать пункт «Переименовать» (файлу имя задается так же).
Ничего сложного, правда? Идем дальше.
Как перемещать и копировать файлы и папки
Перемещение и копирование файла или папки – это две разные вещи. Дабы не путать, приведу простой пример. Представим, что у вас есть лист бумаги с текстом. Вы хотите, чтобы у друга был такой же, и копируете его с помощью ксерокса. Таким образом, получается два листа с одинаковой информацией. Если просто отдадите его другу, то останетесь без листа, то есть вы переместите его.
С файлами и папками все точно так же. Если скопировать файл, то он останется в предыдущем месте и появится в новом, указанном вами, а если переместить, то он с одного места перейдет в другое.
Чтобы копировать файл или папку нужно нажать на нем правой кнопкой мыши и выбрать пункт «Копировать».
Чтобы переместить в другое место выберете пункт «Вырезать». Это словно взять ножницы, с журнала вырезать красивую картинку и вклеить ее на свой лист. Также хочу отметить, что значок вырезаемого объекта станет полупрозрачным.
Теперь нужно куда-то вставить ваш скопированный или вырезанный объект. Перейдите в папку, в которой хотите видеть этот файл, и на свободном от значков месте нажмите правую кнопку мыши. Выберете пункт «Вставить». Это как в примере с вклеиванием на лист бумаги, который я привел вам выше.
Если у вас открыто две папки (два окна), то вы можете просто перетянуть файл с одной в другую, зажав левую кнопку мыши.
Для массового перемещения или копирования зажмите левую кнопку мыши и выделите нужные объекты, а далее все как в случае с одним файлом.
На этой оптимистической ноте закончим сегодняшний урок. Подведем итог. Для создания и выбора действия по перемещению и копированию объектов мы пользуемся правой кнопкой мыши, для перетаскивания – левой (зажимая кнопку на файле). Как обычно, желаю вам легкого обучения без мучения.
Источник
Глава 6. Работа с файлами и папками. Буфер обмена
Буфер обмена
Буфер обмена Windows это область в памяти компьютера, где временно храниться информация, предназначенная для копирования или переноса в другое место. Представим ситуацию, что мы купили в магазине вазу, упаковали её в коробку и принесли домой. Дома достали вазу из коробки и поставили на стол. Примерно так выглядит копирование и вставка файлов или текста. Буфер обмена как раз и есть та самая коробка для переноса.
Как копировать и перемещать файлы в Windows
Давайте откроем нашу папку «Курс для начинающих» и создадим файл, с которым будем работать.
Должно получиться следующее:
Теперь будем создавать документы и раскладывать по папкам разными способами.
Перемещение файла
Способ 1. Перетащить и бросить левой кнопкой мыши. Захватите «Первый документ» левой кнопкой мыши, преместите его на папку 1 и отпустите. Откройте папку 1 и убедитесь, что документ перемещен. Отмените это действие нажав сочетание клавиш CTRL+Z. Убедитесь, что документ вернулся на место.
Способ 2. Перетащить и бросить правой кнопкой мыши. Захватите «Первый документ» правой кнопкой мыши, преместите его на папку 1 и отпустите. Появится контекстное меню в котором нам предлагают действия на выбор. Пока выберем Переместить. Откройте папку 1 и убедитесь, что документ перемещен. Давайте вернём документ обратно следующим способом.
Способ 3. Вырезать, вставить. Первый документ находится в папке 1, щёлкните по нему правой кнопкой мыши и выберите Вырезать, затем вернитесь в папку «Курс для начинающих», щёлкните на пустом месте в рабочей области папки правой кнопкой мыши, в появившемся меню выберите Вставить. Документ опять вернулся в своё первоначальное положение.
Способ 4. Сочетание клавиш CTRL+X. Щелкните по «Первому документу» левой кнопкой мыши и нажмите CTRL+X. Перейдите в папку 1 и нажмите сочетание CTRL+V. Документ снова переместился.
В разных ситуациях удобно пользоваться разными способами. Например при перемещении файла с флешки 1 способ работает как копирование, т.е. файл останется на флешке.
Копирование файла
В папке «Курс для начинающих» создайте новый текстовый документ и назовите его Второй документ.
Способ 1. Перетащить и бросить правой кнопкой мыши. Захватите «Второй документ» правой кнопкой мыши, преместите его на папку 2 и отпустите. Появится контекстное меню в котором нам предлагают действия на выбор. Выберем Копировать. Откройте папку 2 и убедитесь, что документ Скопирован. Удалите документ или нажмите CTRL+Z, что тоже в данном случае приведет к удалению.
Способ 2. Копировать, вставить. Второй документ находится в «Курс для начинающих», щёлкните по нему правой кнопкой мыши и выберите Копировать, затем перейдите в папку 2, щёлкните на пустом месте в рабочей области папки правой кнопкой мыши, в появившемся меню выберите Вставить. Удалите документ из папки 2 или нажмите CTRL+Z
Способ 3. Сочетание клавиш CTRL+С. Щелкните по «Второму документу» левой кнопкой мыши и нажмите CTRL+С. Перейдите в папку 2 и нажмите сочетание CTRL+V. Документ снова скопировался.
Работа с группой файлов
Создадим ещё несколько документов и назовём «Третий документ», «Четвёртый документ», «Пятый документ». Должно получиться так:
Источник
Основы работы с компьютером.
Базовые навыки
Информация, изложенная в этой статье, предназначена для начинающих пользователей компьютера с минимальным уровнем подготовки и является обобщением нескольких других статтей нашего сайта. Это своего рода основа, без которой самостоятельно и быстро освоить компьютер будет достаточно сложно.
Из статьи читатель узнает, как на компьютере осуществлять основные операции с файлами и папками (создавать, переименовывать, копировать, переносить, удалять), научится работать с окнами Windows, овладеет навыками навигации в Windows, освоит умение использования компьютерной мышки.
Начинающим пользователям, читающим эту статью, желательно иметь возможность сразу же на практике опробовать примеры, изложенные в ней. Cтатью лучше скачать и распечатать (ссылка на файл чуть ниже), поскольку все открытые на компьютере приложения придется закрыть, в том числе и это окно. Подойдет также вариант с параллельным использованием второго компьютера или ноутбука.
Введение
Человек, активируя необходимый ему алгоритм работы компьютера (программу), заставляет его в определенной последовательности выполнять определенную работу.
Из этого следует, что для успешного использования компьютера пользователь должен взаимодействовать с ним. То есть, между человеком и вычислительной машиной должно происходить своеобразное общение. Пользователь определенным образом должен давать компьютеру команды, направленные на активацию нужных алгоритмов, контролировать их выполнение и получать желаемый результат в удобной для себя форме.
Операционная система
Сразу после создания первых компьютеров процесс взаимодействия с ними был очень сложным. Далеко не каждый человек мог пользоваться компьютером. Почти для каждого конкретного случая его использования приходилось каждый раз создавать алгоритм необходимых действий. При этом, алгоритм надо было еще и формировать в четком и понятном компьютеру виде. Малейшие ошибки или отклонения от установленных норм приводили к неправильной его работе.
Постепенно компьютерная техника и программы для нее развивались. На определенном этапе этого развития возникли своеобразные суперпрограммы, основным назначением которых было максимальное упрощение взаимодействия человека и компьютера. Безошибочно интерпретируя простые действия человека в понятные компьютеру команды, они давали возможность пользователю в очень простой и наглядной форме буквально пальцем указывать компьютеру что ему необходимо делать.
Операционная система Windows не требует отдельного запуска. Она запускается автоматически вместе с компьютером. Именно завершения ее запуска мы некоторое время ожидаем с момента непосредственного включения компьютера и до появления на мониторе рабочего стола Windows. После этого все наши манипуляции с компьютером (с использованием мышки, клавиатуры или других устройств) воспринимаются не непосредственно компьютером, а операционной системой, которой они интерпретируются в понятные компьютеру команды, благодаря чему мы можем с легкостью управлять им.
Хранение информации на компьютере
Информация на компьютере находится на его запоминающем устройстве. Данные на таком устройстве компьютер может хранить, изменять и удалять. В случае выключения компьютера (в том числе и полного обесточивания) все сохраненные данные останутся неповрежденными, и с ними в дальнейшем можно будет продолжить работу в любой момент.
Следующие несколько абзацев начинающим пользователям могут показаться сложными для восприятия. При необходимости, перечитайте их несколько раз, поскольку правильное понимание изложенного является достаточно важным моментом. Лучше понять содержание этих абзацев поможет схема, которая размещена под ними.
Например, пользователь может создать и сохранить на компьютере текстовый файл, назвав его как угодно. Размер этого файла будет зависеть от того, сколько текстовой информации будет в него помещено. Пользователь может влиять на размер файла, но исключительно путем изменения его содержания. Изменение содержания файла не повлечет за собой изменение его названия и наоборот.
Суммарный размер всех файлов, которые одновременно могут храниться на компьютере, не безграничен. Он ограничивается размером запоминающего устройства компьютера, который также измеряется в байтах.
Все файлы на компьютере располагаются не хаотично, а в строго структурированном и систематизированном виде. Для упорядочения файлов запоминающее устройство компьютера обычно разделяется на логические разделы. Их количество и размер могут быть разными на разных компьютерах. Логическим разделам присваиваются названия в виде букв латинского алфавита (C, D, E и т.д.). Размер логического раздела всегда одинаковый и не меняется в зависимости от его содержимого.
Windows в каждом логическом разделе помимо хранения файлов позволяет создавать более мелкие подразделы, которые называются папками. Каждая из таких папок может содержать в себе как файлы, так и другие папки. Количество папок на компьютере не ограничивается. Размер каждой папки автоматически определяется совокупным размером файлов, которые в ней находятся. Папкам пользователь может присваивать любые названия и впоследствии изменять их (названия). Папки вместе со всем их содержимым (файлами и другими папками) можно копировать в другие логические разделы или на другие носители, удалять.
Благодаря описанной выше системе хранения информации пользователь может создать на компьютере четкую, многоуровневую и удобную для себя структуру, в которой он всегда сможет быстро отыскать все необходимое.
Для лучшего понимания изложенного выше см. схему-образец возможной системы хранения информации на компьютере:
На мониторе визуально каждый файл Windows отображает в форме отдельного значка. Вид значка файлов различных типов отличается и может быть любого цвета и в виде любого изображения.
Все папки отображаются как правило одинаково, в виде небольших папок желтого цвета ( См.рисунок).
Со всеми папками и файлами, которые находятся в логических разделах компьютера, операционная система Windows позволяет проводить разнообразные действия:
— просматривать содержание файлов и папок;
— создавать новые файлы и папки;
— присваивать им любые названия и произвольно изменять их;
— редактировать содержание файлов;
— копировать или переносить файлы и папки с одного логического раздела или папки в другой логический раздел или папку компьютера, или же на (с) съемные запоминающие устройства. Это позволяет переносить информацию с одного компьютера на другой;
— удалять файлы и папки.
Для того, чтобы проводить перечисленные выше операции, человек должен взаимодействовать с компьютером. Основными устройствами, обеспечивающими такое взаимодействие, являются:
Без наличия хотя бы одного из указанных устройств полноценно использовать современный компьютер с операционной системой Windows очень неудобно.
Основные операций с окнами, файлами и папками
Если у вас в настоящее время в пользовании есть компьютер с ОС Windows, предлагаю на практике рассмотреть основные структурные элементы этой операционной системы и порядок проведения базовых операций с файлами при помощи манипулятора «Мышь».
Итак, сразу после запуска компьютера пользователь видит Рабочий стол Windows ( см. изображение ниже). Это основное окно операционной системы. На разных компьютерах оно может иметь любой графический фон (фотография или просто цветная подложка). На нем может находиться произвольное количество значков файлов с любыми названиями.
Упомянутая графическая подложка называется обоями рабочего стола. Ее можно сменить на любую другую. Но об этом чуть позже. Сначала необходимо разобраться с порядком использования манипулятора «Мышь».
Важным навыком, которым пользователю необходимо овладеть на первых порах, является умение точного перемещения и наведения указателя мышки на объекты, которые отображаются на мониторе. У начинающих пользователей с этим могут возникать определенные проблемы, однако, любой человек способен быстро приспособиться к таким манипуляциям. Необходимо лишь немного попрактиковаться.
Наведением курсора на определенный объект человек дает компьютеру понять, что именно с этим объектом он намерен произвести определенные действия. Компьютер при наведении курсора на какой-то значок, как правило, показывает пользователю небольшую подсказку о том, что это за объект.
Попробуйте с помощью двойного клика открыть Корзину, значок которого находится на рабочем столе.
Если все сделано правильно, через непродолжительное время после двойного щелчка на значке Корзины, откроется окно с названием «Корзина». Оно может быть пустым или содержать определенные файлы и папки ( см. изображение). Аналогичным образом в Windows можно открыть любой файл или папку.
Обратите внимание, что окно Корзины, как и любое другое окно Windows, в правом верхнем углу содержит небольшие кнопки. Это кнопки основных операций с окном ( см. изображение). Как правило, таких кнопок в окне не больше трех и они могут иметь следующий вид:
Нажимать на эти кнопки можно с помощью мышки. Достаточно навести на нужную кнопку указатель и один раз нажать левую кнопку мыши.
Нажатие кнопки «развернуть окно на весь экран» приведет к увеличению его размеров до максимально возможных.
Кнопка с двумя квадратиками имеет обратный эффект и возвращает расширенному окну его обычное состояние.
И наконец, нажатие кнопки с двумя перекрещенными черточками приводит к закрытию окна.
Теперь давайте разберемся с правой кнопкой мыши. Наведите указатель на значок Корзины и один раз нажмите правую кнопку мыши.
Возле значка появится список действий, которые можно произвести с объектом ( см. изображение). Чтобы выбрать определенный пункт из списка, необходимо навести на него указатель и один раз кликнуть левой кнопкой мыши. Для примера, выберите пункт «Открыть». Это приведет к открытию окна «Корзина», то есть, будет иметь такой же эффект, как и даблклик левой кнопкой, о котором говорилось выше.
Указанный список возможных операций, который открывается щелчком правой кнопки мыши на объекте, называется контекстным меню. В Windows контекстное меню есть у каждого файла или папки. Перечень возможных операций в этом меню для каждого типа файлов будет разным.
Поскольку вы уже владеете навыками осуществления основных операций с окнами Windows, предлагаю для их закрепления и составления более полного представления о структуре файловой системы компьютера разобраться с основами навигации в Windows.
Окном, в котором отображается верхняя ступень этой файловой иерархии, является окно с названием «Мой компьютер» или «Компьютер» (в зависимости от версии Windows).
Значок этого основного окна может находиться на Рабочем столе. Как и любое окно в Windows, его можно открыть двойным щелчком левой кнопки мыши по значку.
Если же на рабочем столе значок «Мой компьютер» или «Компьютер» отсутствует, ищите его в меню « Пуск ». Для этого, щелкните левой кнопкой мыши на кнопку, которая находится в левом нижнем углу экрана ( см. изображение). Откроется меню, в котором надо найти кнопку с соответствующим названием («Мой компьютер» или «Компьютер») и нажать на нее левой кнопкой мыши.
Если все сделано правильно, откроется окно с соответствующим названием ( см. изображение ниже). Если это окно открыто не на весь экран, для удобства переведите его в полноэкранный режим с помощью соответствующей кнопки в его правом верхнем углу (речь шла выше).
В окне «Мой компьютер» в систематизированном виде отображаются значки всех запоминающих устройств, подключенных к компьютеру. В пункте «Жесткие диски» выводятся значки логических разделов, на которые разделено постоянное запоминающее устройство компьютера. Двойным кликом левой кнопки мыши по значку раздела перейдите в любой из них. Если в открытом разделе есть папки, можно открыть любую (перейти еще на ступень ниже). Чтобы подняться на ступень выше (вернуться обратно), достаточно левой кнопкой мыши один раз нажать на кнопку со стрелкой влево, которая находится в левом верхнем углу окна ( см. изображение).
Таким образом, начав с верхней ступени файловой иерархии компьютера (окна «Мой компьютер»), пользователь может спуститься на любой уровень и просмотреть любые папки или файлы, находящиеся на компьютере.
Обратите внимание, что во время навигации по файловой системе компьютера в каждом окне в специальной строке, которая находится в верхней его части, отображается информация о положении в этой файловой системе раздела или папки, которая в настоящее время просматривается. Эта строка называется адресной. Для примера, см. изображение. На нем изображено окно, из адресной строки которого видно, что просматриваемая папка «Пример» находится в папке «111», которая в свою очередь находится в логическом разделе «C» компьютера.
Теперь предлагаю потренироваться в создании файлов, папок, их переименовании и осуществлении других базовых операций с ними.
Возвращаемся на рабочий стол Windows (закрываем все открытые окна).
1. Создание файлов и папок
Перечень возможных вариантов в указанном контекстном меню может существенно отличаться на разных компьютерах. Однако, создание базовых типов файлов и папок указанным выше способом доступно на любом ПК.
В качестве примера создайте на Рабочем столе папку и текстовый документ.
2. Переименование файлов и папок.
Чтобы изменить имя существующей папки или файла, необходимо кликнуть по нему правой кнопкой мыши и в контекстном меню выбрать пункт «Переименовать». После этого активируется возможность изменения названия, и это можно будет сделать, просто введя необходимые символы с помощью клавиатуры. После окончания ввода надо нажать клавишу Enter (на клавиатуре).
3. Удаление файлов и папок
Чтобы удалить папку или файл, в его контекстном меню достаточно выбрать пункт «Удалить» и подтвердить операцию, нажав в открывшемся окне соответствующую кнопку.
4. Копирование и перемещение файлов и папок
Процесс копирования и перемещения файлов и папок в операционной системе Windows происходит в 2 этапа:
— помещения файла или папки в буфер обмена;
— вставка файла или папки, которая находится в буфере обмена, в определенное пользователем место.
Итак, для того, чтобы скопировать файл или папку в буфер обмена, необходимо в ее контекстном меню выбрать пункт «Копировать».
После этого необходимо перейти в папку, в которую нужно скопировать файл или папку, кликнуть правой кнопкой мыши по пустому пространству и в контекстном меню выбрать пункт «вставить».
Учтите, что информация (файл или папка), помещена в буфер обмена Windows, хранится там до выключения компьютера или же до копирования в буфер новой информации. Для примера, попробуйте скопировать созданный нами текстовый файл в созданную папку. Проведите несколько экспериментов по созданию, копированию, переименованию и удалению файлов и папок.
Овладев базовыми знаниями и навыками работы с компьютером, можно переходить к изучению порядка просмотра папок и файлов. Но об этом уже в следующей статье.
Источник
Поиск, просмотр и упорядочение папок в системе Windows
Просмотр и упорядочение файлов и папок
С каждым нажатием левой части кнопки «Вид» меняется представление файлов и папок благодаря циклическому переходу между пятью различными представлениями:
Если нажать стрелку в правой части кнопки «Вид», будет доступен еще больший выбор. Перетащите ползунок выше или ниже, чтобы точно настроить размер значков файлов и папок. Значки изменяют размер по мере перемещения ползунка.
Библиотеки предоставляют больше возможностей благодаря функции упорядочения файлов различными способами. Например, если нужно упорядочить файлы в медиатеке по жанру (таким как Jazz и Classical):
Поиск файлов в системе Windows
В зависимости от количества файлов и способа их упорядочивания, для поиска файла может потребоваться просмотр сотен файлов и вложенных папок – нелегкая задача. Чтобы сэкономить время и усилия, можно воспользоваться полем поиска.
Поле поиска находится в верхней части каждого окна. Чтобы найти файл, откройте папку или библиотеку, которая лучше всего подходит для начала поиска, щелкните поле поиска и начните ввод. Поле поиска фильтрует текущее представление на основе введенного текста. Файлы отображаются в результатах поиска, если запрос совпадает с именем файла, его тегами, другими свойствами файла и даже текстом внутри текстового документа.
Ища файл по свойству (например, тип файла), можно сузить поиск еще до начала ввода запроса. Для этого нужно щелкнуть поле поиска и выбрать какое-то из свойств, указанных под полем поиска. Таким образом к текстовому запросу будет добавлен фильтр поиска (например, «тип»), что поможет получить более точные результаты.
Если не удается найти файл, можно изменить всю область поиска, щелкнув параметр в нижней части списка файлов. Например, если не удалось найти файл в библиотеке документов, расширьте область поиска на другие библиотеки, щелкнув Библиотеки. Дополнительные сведения см. Поиск файла или папки.
Копирование и перемещение файлов и папок
Иногда может возникнуть необходимость изменить место хранения файлов. Например, может потребоваться переместить файлы в другую папку или скопировать на съемный носитель (компакт-диск или карту памяти), чтобы предоставить доступ к ним другому лицу.
Большинство людей копируют и перемещают файлы Windows с помощью метода, который называется «перетаскивание». Откройте папку, содержащую файл, который требуется переместить. Далее откройте в другом окне ту папку, в которую нужно переместить эти элементы. Расположите окна на рабочем столе рядом, чтобы видеть содержимое обоих.
Перетащите файл или папку с первой папки в другую. Вот и все.
Пользуясь перетаскиванием, можно заметить, что иногда файл или папка копируется, а в другой раз – перемещается.
Если перетаскивать между двумя папками, расположенными на одном жестком диске, элементы будут перемещены без создания двух экземпляров одного файла или папки в одном месте.
Если перетаскивать в папку с другим расположением (например, сетевым) или на съемный носитель (например, компакт-диска), элемент копируется.
Создание и удаление файлов
Зачастую новые файлы Windows создают с помощью программы. Например, текстовый документ можно создать в текстовом редакторе, а видеофайл – в видеоредакторе.
Некоторые программы создают файл сразу после открытия. Например, если открыть WordPad, будет открыта пустая страница. Она изображает пустой (и несохранившийся) файл. Начните ввод, а когда будете готовы сохранить результат работы, нажмите кнопку Сохранить. В диалоговом окне появится, введите имя файла, которое поможет найти его снова, нажмите кнопку Сохранить.
По умолчанию большинство программ сохраняет файлы в стандартных папках («Мои документы», «Моя музыка» и др.) – так файлы легче найти.
После удаления файла он временно хранится в «Корзине». «Корзина» можно сравнить со страховочной сеткой: он позволяет восстановить случайно удаленные файлы и папки. Время от времени следует очищать «Корзину» для освобождения места на диске, которое занимают ненужные файлы. Чтобы узнать, как это сделать, см. Окончательное удаление файлов из корзины.
Открытие существующего файла
Чтобы открыть файл, дважды щелкните его. Обычно файл открывается в той программе, в которой он был создан или отредактирован. Например, текстовый файл откроется в текстовом редакторе.
Но не всегда бывает так. Например, после двойного щелчка файла изображения обычно открывается программа просмотра изображений. Чтобы изменить изображение, нужно воспользоваться другой программой. Щелкните правой кнопкой мыши, выберите пункт Открыть с помощью и выберите имя программы, которую следует запустить.
Файл – это элемент, который содержит информацию: текст, изображения или музыку. Открытый файл может быть очень похожим на обычный текстовый документ или изображение, которые можно увидеть на столе или в ящике. На компьютере файлы представлены пиктограммами, это позволяет легко распознавать тип файла по виду его пиктограммы.
Вот несколько типичных значков файлов:
Папка – это своеобразный контейнер, который можно использовать для хранения файлов. Если разложить на обычном столе тысячи бумажных документов, найти среди них нужный будет практически невозможно.
Вот почему люди часто хранят документы в папках на полках шкафов. Папки на компьютере выполняют ту же функцию. Вот несколько типичных значков папок:
В папках могут содержаться другие папки. Папка, расположенная внутри другой, обычно называется вложенной папкой. Можно создать любое количество вложенных папок, и каждая из них может содержать любое количество файлов и других вложенных папок.
Использование библиотек для доступа к файлам и папкам
Когда дело дойдет до «благоустройства» Windows, Вам не придется начинать все с нуля. Для доступа к файлам и папкам и их упорядочения различными способами можно воспользоваться библиотеками – новым средством Windows.
Ниже представлен список четырех библиотек по умолчанию и их типичных назначений:
По умолчанию папка «Мои документы» – хранилище для всех файлов, перемещенных, скопированных или сохраненных в библиотеку документов.
По умолчанию папка «Мои рисунки» – хранилище для всех изображений, перемещенных, скопированных или сохраненных в библиотеку изображений.
По умолчанию папка «Моя музыка» – хранилище для всех файлов, перемещенных, скопированных или сохраненных в фонотеку.
По умолчанию папка «Мои видеозаписи» – хранилище для всех файлов, перемещенных, скопированных или сохраненных в библиотеку видеозаписей.
Чтобы открыть библиотеки «Документы», «Изображения» или «Музыка», меню Пуск и нажмите Документы, Изображения и Музыка.
Дополнительные сведения о библиотеках см. Работа с библиотеками.
Cтруктура окна системы Windows
Когда открывают папку или библиотеку, она отображается в окне. Различные компоненты этого окна облегчают перемещение в Windows и упрощают работу с файлами, папками и библиотеками.
Вот типичное окно и его компоненты:
С помощью области переходов можно получить доступ к библиотекам, папок, сохраненных результатов поиска и даже целых жестких дисков. Из раздела «Избранное» можно открывать часто используемые папки и результаты поиска, а из раздела «Библиотеки» можно получить доступ к своим библиотек.
Для просмотра папок и вложенных папок можно воспользоваться и папкой «Компьютер».
Кнопки «Назад» и «Вперед»
Кнопки Назад и Вперед позволяют переходить к другим (уже открытых) папок и библиотек, не закрывая текущее окно. Эти кнопки работают в сочетании со строкой адреса. Например перейдя от одной папки в другую с помощью строки, можно воспользоваться кнопкой «Назад», чтобы вернуться к предыдущей папке.
Панель инструментов позволяет выполнять стандартные задачи, например изменять вид папок и файлов, записывать файлы на компакт-диск или запускать показ слайдов цифровых изображений. Кнопки на панели инструментов изменяются, отображаются только уместны для каждого конкретного случая задачи.
Например, если щелкнуть файл изображения на панели инструментов появятся остальные кнопки, чем для музыкального файла.
С помощью адресной строки можно переместиться в другую папку или библиотеки, а также вернуться к предыдущей папке или библиотеке. Дополнительные сведения см. Навигация с помощью строки.
Область библиотек появляется только во время работы в библиотеке (например, в библиотеке документов). С помощью области библиотек можно настроить библиотеку или упорядочить файлы различными свойствами. Дополнительные сведения см. Работа с библиотеками.
С помощью заголовков столбцов можно изменить упорядочения файлов в списке. Например, щелкнув левую часть заголовка столбца, можно изменить порядок отображения файлов и папок щелкнув правую часть заголовка столбца, можно отфильтровать файлы различными способами. (Заметьте, что заголовки столбцов доступны только в режиме «Подробно»)
Здесь отображается содержимое текущей папки или библиотеки. Если воспользоваться полем поиска для поиска файла, отображается только файлы в текущем представлении (к нему относятся и файлы во вложенных папках).
В поле поиска можно ввести слово или фразу, чтобы найти элемент в текущей папке или библиотеке. Поиск начинается, уже началось введения. Поэтому когда, например, введено букву «В», появляется список всех файлов, имена которых начинаются с буквы «В». Дополнительные сведения см. Поиск файла или папки.
Область сведений позволяет просматривать стандартный набор свойств, связанных с выделенным файлом. Свойства файла – это информация о файле: имя автора, дата последнего изменения и описательные теги, которые можно добавить к файлу.
Источник
Для работы с файловой системой в Python используют модули
os, os.path и shututil, а для операций с файлами – встроенные функции open(), close(), read(), readline(), write() и т. д. Прежде, чем мы перейдем
к примерам использования конкретных методов, отметим один важный момент – корректный формат пути к файлам и каталогам.
Дело в том, что Python считает некорректным стандартный
для Windows формат: если указать путь к файлу в привычном виде 'C:UsersUserPythonletters.py'
, интерпретатор вернет ошибку. Лучше
всего указывать путь с помощью r-строк
или с экранированием слэшей:
r'C:UsersUserPythonletters.py'
'C:\Users\User\Python\letters.py'
Иногда также путь указывают с обратными слэшами:
'C:/Users/User/Python/letters.py'
Получение информации о файлах и директориях
Метод getcwd() возвращает
путь к текущей рабочей директории в виде строки:
>>> import os
>>> os.getcwd()
'C:\Users\User\Python'
С помощью метода os.listdir() можно получить список всех поддиректорий и файлов текущего рабочего каталога, при этом содержимое вложенных папок не отображается:
>>> os.listdir()
['Data', 'lambda_functions.py', 'letters.py', 'os_methods.py', 'passw_generator.py', 'points.py', 'population.py']
Метод os.walk() возвращает генератор, в котором содержится
вся информация о рабочем каталоге, включая содержимое всех поддиректорий:
>>> import os
>>> my_cwd = os.getcwd()
>>> result = os.walk(my_cwd)
>>> for i, j, k in result:
for file in k:
print(file)
lambda_functions.py
letters.py
os_methods.py
passw_generator.py
points.py
population.py
books_to_process.txt
challenge_data.txt
ledger.txt
Много полезных методов содержится в модуле os.path. Так можно извлечь имя файла из полного пути:
>>> os.path.basename(r'C:UsersUserPythonletters.py')
'letters.py'
А так можно получить путь к директории / файлу, в который не
включается собственно поддиректория или имя файла:
>>> os.path.dirname(r'C:UsersUserPythonData')
'C:\Users\User\Python'
Метод path.isabs() покажет, является ли
путь абсолютным или относительным:
>>> os.path.isabs(r'C:UsersUserPythonData')
True
>>> os.path.isabs(r'.PythonData')
False
>>>
Метод path.isdir() возвращает True
, если переданная в метод директория существует, и False
– в противном случае:
>>> os.path.isdir(r'C:UsersUserPythonDataSamples')
False
Для установления факта существования файла служит path.isfile():
>>> os.path.isfile(r'C:UsersUserPythonmatrix_challenge.py')
False
Для преобразования пути в нижний регистр и нормализации слэшей используют path.normcase():
>>> os.path.normcase('C:/Users/User/Python')
'c:\users\user\python'
Хотя путь к файлу (директории) представляет собой строку,
создавать полный путь с помощью конкатенации считается моветоном – нужно
использовать метод os.path.join():
# Неправильно:
my_cwd = os.getcwd()
file_name = 'my_solution.py'
path = my_cwd + '\' + file_name
# Правильно:
path = os.path.join(my_cwd, file_name)
Результат:
C:UsersUserPythonmy_solution.py
Операции с каталогами и файлами в Python
Для создания новых директорий служит os.mkdir(); в метод нужно передать полный путь, включающий название
нового каталога:
import os
my_cwd = os.getcwd()
new_dir = 'Solutions'
path = os.path.join(my_cwd, new_dir)
os.mkdir(path)
print(os.listdir())
Результат:
['Data', 'lambda_functions.py', 'letters.py', 'os_methods.py', 'passw_generator.py', 'points.py', 'population.py', 'Solutions']
Изменить рабочую директорию можно с помощью метода os.chdir(), это аналог CLI команды cd
:
>>> import os
>>> os.getcwd()
'C:\Users\User\Python'
>>> os.chdir(r'C:UsersUserPythonData')
>>> os.getcwd()
'C:\Users\User\Python\Data'
Использование os.chdir()
может привести к ошибке, если путь к переданной в метод директории указан
неправильно или не существует. Поэтому этот метод стоит использовать только с
обработкой ошибок:
import sys, os
my_cwd = os.getcwd()
new_cwd = r'C:UsersUserPythonMyData'
try:
os.chdir(new_cwd)
print(f'Изменяем рабочую директорию на {os.getcwd()}')
except:
print(f'Произошла ошибка {sys.exc_info()}')
finally:
print('Восстанавливаем рабочую директорию на прежнюю')
os.chdir(my_cwd)
print(f'Текущая рабочая директория - {os.getcwd()}')
Вывод:
Произошла ошибка (<class 'FileNotFoundError'>, FileNotFoundError(2, 'Не удается найти указанный файл'), <traceback object at 0x024E9828>)
Восстанавливаем рабочую директорию на прежнюю
Текущая рабочая директория - C:UsersUserPython
Создание директорий в Python
Для создания новых каталогов используют два метода:
- os.mkdir() – аналог CLI команды
mkdir
; создает новую папку по указанному пути, при условии, что все указанные промежуточные (вложенные) директории уже существуют. - os.makedirs() – аналог CLI команды
mkdir -p dir1dir2
; помимо создания целевой папки, создает все промежуточные директории, если они не существуют.
Пример использования os.mkdir():
import os
new_dir = 'NewProjects'
parent_dir = r 'C:UsersUserPython'
path = os.path.join(parent_dir, new_dir)
os.mkdir(path)
print(f'Директория {new_dir} создана: {os.listdir()}')
Результат:
Директория NewProjects создана: ['Data', 'lambda_functions.py', 'letters.py', 'NewProjects', 'os_methods.py', 'Other', 'passw_generator.py', 'points.py', 'population.py', 'Solutions']
Пример использования makedirs():
import os
new_dir = 'Django'
parent_dir = r'C:UsersUserPythonOtherProjectsModules'
path = os.path.join(parent_dir, new_dir)
os.makedirs(path)
print(f'Директория {new_dir} создана по адресу {os.path.dirname(path)}')
Результат:
Директория Django создана по адресу C:UsersUserPythonOtherProjectsModules
Копирование файлов и директорий в Python
Для копирования файлов используют метод shutil.copy2(), который принимает два аргумента
– источник файла и директорию, в которую нужно скопировать файл:
import os
import shutil
dest_path = r'C:UsersUserPythonData'
source_path = r'C:UsersUserlambda_exp.txt'
print(f'Файлы в директории {os.path.basename(dest_path)} до копирования файла
{os.path.basename(source_path)}: {os.listdir(dest_path)}n')
copy_file = shutil.copy2(source_path, dest_path)
print(f'Файлы в директории {os.path.basename(dest_path)} после копирования файла
{os.path.basename(source_path)}: {os.listdir(dest_path)}')
Вывод:
Файлы в директории Data до копирования файла lambda_exp.txt: ['books_to_process.txt', 'challenge_data.txt', 'ledger.txt']
Файлы в директории Data после копирования файла lambda_exp.txt: ['books_to_process.txt', 'challenge_data.txt', 'lambda_exp.txt', 'ledger.txt']
Помимо метода shutil.copy2(),
для копирования файлов можно пользоваться методом shutil.copy(). Разница между
этими двумя методами в том, что в отличие от shutil.copy2(),
метод shutil.copy() копирует только
содержимое файла, но не метаданные:
import os
import shutil
dest_path = r'C:UsersUserPythonData'
source_path = r'C:UsersUserlogfile.txt'
print(f'Файлы в директории {os.path.basename(dest_path)} до копирования файла
{os.path.basename(source_path)}: {os.listdir(dest_path)}n')
print(f'Метаданные: {os.stat(source_path)}n')
copy_file = shutil.copy(source_path, dest_path)
print(f'Файлы в директории {os.path.basename(dest_path)} после копирования файла
{os.path.basename(source_path)}: {os.listdir(dest_path)}n')
print(f'Метаданные: {os.stat(dest_path)}n')
Вывод:
Файлы в директории Data до копирования файла logfile.txt: ['books_to_process.txt', 'challenge_data.txt', 'lambda_exp.txt']
Метаданные: os.stat_result(st_mode=33206, st_ino=18014398509552989, st_dev=4236505663, st_nlink=1, st_uid=0, st_gid=0, st_size=455, st_atime=1629682315, st_mtime=1629681887, st_ctime=1629682315)
Файлы в директории Data после копирования файла logfile.txt: ['books_to_process.txt', 'challenge_data.txt', 'lambda_exp.txt', 'logfile.txt']
Метаданные: os.stat_result(st_mode=16895, st_ino=11821949021901021, st_dev=4236505663, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1675257729, st_mtime=1675257729, st_ctime=1675084801)
Все содержимое каталога сразу можно скопировать с помощью shutil.copytree():
import os
import shutil
dest_path = r'C:UsersUserPythonOtherFiles'
source_path = r'C:UsersUserPythonOtherScripts'
print(f'Содержимое директории {os.path.basename(dest_path)} до копирования каталога
{os.path.basename(source_path)}: {os.listdir(dest_path)}n')
copy_dir = shutil.copytree(source_path, dest_path, dirs_exist_ok=True)
print(f'Содержимое директории {os.path.basename(dest_path)} после копирования
{os.path.basename(source_path)}: {os.listdir(dest_path)}n')
Вывод:
Содержимое директории Files до копирования каталога Scripts: []
Содержимое директории Files после копирования Scripts: ['progression.py', 'sitemap_generator.py']
Перемещение файлов и директорий
Для перемещения файлов используют метод shutil.move():
import os
import shutil
dest_path = r'C:UsersUserPythonOtherScripts'
source_path = r'C:UsersUserDesktopsitemap_generator.py'
print(f'Содержимое директории {os.path.basename(dest_path)} до копирования каталога
{os.path.basename(source_path)}: {os.listdir(dest_path)}n')
copy_dir = shutil.move(source_path, dest_path)
print(f'Содержимое директории {os.path.basename(dest_path)} после копирования
{os.path.basename(source_path)}: {os.listdir(dest_path)}n')
Вывод:
Содержимое директории Scripts до копирования каталога sitemap_generator.py: ['progression.py', 'wiki_scraping.py']
Содержимое директории Scripts после копирования sitemap_generator.py: ['progression.py', 'sitemap_generator.py', 'wiki_scraping.py']
Для перемещения содержимого всей директории в качестве
функции указывают shutil.copytree():
copy_dir = shutil.move(source_path, dest_path, copy_function = shutil.copytree)
Удаление файлов и директорий
Для удаления директории вместе со всеми файлами используют shutil.rmtree():
import os
import shutil
dir_path = r'C:UsersUserPythonOther'
remove_dir = 'Files'
path = os.path.join(dir_path, remove_dir)
print(f'Содержимое директории {os.path.basename(dir_path)} до удаления каталога
{remove_dir}: {os.listdir(dir_path)}n')
shutil.rmtree(path)
print(f'Содержимое директории {os.path.basename(dir_path)} после удаления
{remove_dir}: {os.listdir(dir_path)}n')
Вывод:
Содержимое директории Other до удаления каталога Files: ['Files', 'Projects']
Содержимое директории Other после удаления Files: ['Projects']
Другой метод для удаления пустых директорий – os.rmdir():
import os
import shutil
dir_path = r'C:UsersUserPythonOther'
remove_dir = 'Scripts'
path = os.path.join(dir_path, remove_dir)
print(f'Содержимое директории {os.path.basename(dir_path)} до удаления каталога
{remove_dir}: {os.listdir(dir_path)}n')
os.rmdir(path)
print(f'Содержимое директории {os.path.basename(dir_path)} после удаления
{remove_dir}: {os.listdir(dir_path)}n')
Вывод:
Содержимое директории Other до удаления каталога Scripts: ['Projects', 'Scripts']
Содержимое директории Other после удаления Scripts: ['Projects']
Очевидный минус метода os.rmdir()
в том, что он работает только на пустых директориях – если поместить в каталог Scripts хотя бы один файл,
удалить его с os.rmdir() уже не получится:
Traceback (most recent call last):
File "C:UsersUserPythonos_methods.py", line 8, in <module>
os.rmdir(path)
OSError: [WinError 145] Папка не пуста: 'C:\Users\User\Python\Other\Scripts'
Для удаления файлов используют метод os.remove():
import os
import shutil
dir_path = r'C:UsersUserPythonOtherScripts'
remove_file = 'tetris_game.py'
path = os.path.join(dir_path, remove_file)
print(f'Содержимое директории {os.path.basename(dir_path)} до удаления файла
{remove_file}: {os.listdir(dir_path)}n')
os.remove(path)
print(f'Содержимое директории {os.path.basename(dir_path)} после удаления
{remove_file}: {os.listdir(dir_path)}n')
Вывод:
Содержимое директории Scripts до удаления файла tetris_game.py: ['tetris_game.py']
Содержимое директории Scripts после удаления tetris_game.py: []
Работа с файлами в Python
Открыть файл для проведения каких-либо манипуляций можно
двумя способами:
- С помощью функции open() – в этом случае после завершения работы нужно будет закрыть файл с помощью close():
f = open('task.txt', 'a', encoding='utf-8')
f.write('n2) Написать модуль авторизации')
f.close()
- С использованием менеджера контекста with, который автоматически и самостоятельно закроет файл, когда надобность в нем отпадет:
with open('task.txt', 'a', encoding='utf-8') as f:
f.write('n2) Написать модуль авторизации')
Типы файлов
В Python все файлы делятся на:
- Текстовые
't'
- Бинарные (двоичные)
'b'
Если никакой определенный тип файла не указан, по умолчанию Python считает, что пользователь работает с текстовыми файлами. Поэтому для работы с изображениями, мультимедийными файлами и pdf, например, следует указывать, что тип файла относится к 'b'
.
Режимы доступа и записи
‘r’ | Открывает файл для чтения. Возвращает ошибку, если указанный файл не существует. |
‘w’ | Открывает файл для записи, причем перезаписывает содержимое, если оно есть. Создает файл, если он не существует. |
‘a’ | Открывает файл для записи и добавляет новую информацию, не перезаписывая существующую. Создает файл, если он не существует. |
‘w+’ | Открывает файл для чтения и записи, перезаписывает содержимое. |
‘r+’ | Открывает файл для чтения и дополнения, не перезаписывает содержимое. |
‘x’ | Создает новый пустой файл. Возвращает ошибку, если файл с таким именем уже существует. |
Примечание: для операций с двоичными файлами к указанным
параметрам нужно добавлять b
,
то есть вместо 'r'
должно быть 'rb'
, а
вместо 'w+'
– 'wb+'
.
Методы работы с файлами
Для чтения данных используют read(). Метод read() по умолчанию возвращает все содержимое файла:
with open('books.txt', 'r', encoding='utf-8') as f:
info = f.read()
print(info)
Вывод:
1. "Террор", Дэн Симмонс
2. "Она же Грейс", Маргарет Этвуд
3. "Облачный атлас", Дэвид Митчелл
4. "Искупление", Иэн Макьюэн
5. "Госпожа Бовари", Гюстав Флобер
При необходимости объем выводимой информации можно ограничить
определенным количеством символов:
with open('movies.txt', 'r', encoding='utf-8') as f:
info = f.read(15)
print(info)
Вывод:
1. "Из машины"
Метод readline()
позволяет считывать информацию из текстовых файлов построчно:
with open('books.txt', 'r', encoding='utf-8') as f:
info = f.readline()
print(info)
Вывод:
1. "Террор", Дэн Симмонс
Для получения всех строк файла используют метод readlines(),
который возвращает содержимое в виде списка – вместе со всеми спецсимволами:
with open('books.txt', 'r', encoding='utf-8') as f:
info = f.readlines()
print(info)
Вывод:
['1. "Террор", Дэн Симмонсn', '2. "Она же Грейс", Маргарет Этвудn', '3. "Облачный атлас", Дэвид Митчеллn', '4. "Искупление", Иэн Макьюэнn', '5. "Госпожа Бовари", Гюстав Флобер']
Чтобы избавиться от лишних пробелов, символа новой строки (и любых других
спецсимволов), используют методы rstrip(), lstrip()
или strip():
with open('books.txt', 'r', encoding='utf-8-sig') as f:
info = [line.strip() for line in f.readlines()]
print(info)
Вывод:
['1. "Террор", Дэн Симмонс', '2. "Она же Грейс", Маргарет Этвуд', '3. "Облачный атлас", Дэвид Митчелл', '4. "Искупление", Иэн Макьюэн', '5. "Госпожа Бовари", Гюстав Флобер']
Для записи информации в файл используют метод write():
with open('books.txt', 'a', encoding='utf-8') as f:
f.write('n6. "Война и мир", Лев Толстойn')
Или writelines():
with open('books.txt', 'a', encoding='utf-8') as f:
f.writelines(['7. "Преступление и наказание", Федор Достоевскийn',
'8. "Мизери", Стивен Кингn',
'9. "Джейн Эйр", Шарлотта Бронтеn'])
Кроме того, записывать данные в файл можно с помощью print():
with open('crm_log.txt', 'a', encoding='utf-8') as file:
print('nСергей Леонов, 11:18, 12:23', file=file)
Чтобы узнать текущую позицию курсора в файле, используют метод tell():
with open('books.txt', 'r', encoding='utf-8-sig') as f:
f.readline()
f.read(5)
print(f.tell())
Вывод:
51
Для считывания данных из определенной позиции используют seek():
with open('movies.txt', 'r', encoding='utf-8') as f:
f.seek(53)
print(f.read())
Вывод:
3. "Дракула Брэма Стокера"
Практика
Задание 1
Имеется файл books.txt, содержащий следующую
информацию:
1. "Террор", Дэн Симмонс
2. "Она же Грейс", Маргарет Этвуд
3. "Облачный атлас", Дэвид Митчелл
4. "Искупление", Иэн Макьюэн
5. "Госпожа Бовари", Гюстав Флобер
6. "Война и мир", Лев Толстой
7. "Преступление и наказание", Федор Достоевский
8. "Мизери", Стивен Кинг
9. "Джейн Эйр", Шарлотта Бронте
Напишите программу, которая выводит первые 3 строки файла.
Решение:
with open('books.txt', 'r', encoding='utf-8') as file:
for i in range(3):
line = file.readline().strip()
print(line)
Задание 2
Напишите программу, которая получает от пользователя имя
файла и возвращает следующие данные о его содержимом:
- количество строк;
- количество слов;
- число символов без пробелов и точек.
Пример ввода:
series.txt
Содержимое файла:
1. Последнее королевство 2015
2. Рим 2005
3. Версаль 2015
4. Тюдоры 2007
5. Террор 2018
6. Человек в высоком замке 2015
7. Белая королева 2013
8. Братья по оружию 2001
9. Медичи 2016
10. Спартак 2010
Вывод:
Количество строк в файле series.txt: 10
Количество слов: 17
Число символов: 153
Решение:
filename = input()
lines, words, symbols = 0, 0, 0
with open(filename, 'r', encoding='utf-8') as file:
for i in file:
lines += 1
words += len([w for w in i.split() if w.isalpha()])
symbols += len([s for s in i if s.isalnum()])
print(f'Количество строк в файле {filename}: {lines}n'
f'Количество слов: {words}n'
f'Число символов: {symbols}n'
)
Задание 3
Напишите программу, которая находит самое длинное слово в
списке книг из первого задания.
Ожидаемый результат:
Преступление
Решение:
with open('books.txt', 'r', encoding='utf-8') as file:
words = file.read().replace('"', '').split()
result = [w for w in words if len(w) == len(max(words, key=len))]
print(*result)
Задание 4
Имеется файл fruit.txt со
следующим содержимым:
Апельсин маракуйя папайя айва Яблоко
апельсин яблоко ананас банан персик Слива
Банан груша слива виноград авокадо Цитрон
Слива Груша яблоко мандарин цитрон
лимон Лайм апельсин ананас персик айва
Хурма киви хурма манго авокадо лайм
Нектарин Инжир гранат Папайя Гранат
Напишите программу, которая подсчитывает, сколько раз
название каждого фрукта встречается в тексте.
Вывод:
Названия этих фруктов встречаются в тексте:
"апельсин" - 3 раз(а)
"маракуйя" - 1 раз(а)
"папайя" - 2 раз(а)
"айва" - 2 раз(а)
"яблоко" - 3 раз(а)
"ананас" - 2 раз(а)
"банан" - 2 раз(а)
"персик" - 2 раз(а)
"слива" - 3 раз(а)
"груша" - 2 раз(а)
"виноград" - 1 раз(а)
"авокадо" - 2 раз(а)
"цитрон" - 2 раз(а)
"мандарин" - 1 раз(а)
"лимон" - 1 раз(а)
"лайм" - 2 раз(а)
"хурма" - 2 раз(а)
"киви" - 1 раз(а)
"манго" - 1 раз(а)
"нектарин" - 1 раз(а)
"инжир" - 1 раз(а)
"гранат" - 2 раз(а)
Решение:
with open('fruit.txt', 'r', encoding='utf-8') as file:
result = {}
for line in file:
words = line.strip().lower().split()
for w in words:
result[w] = result.get(w, 0) + 1
print(f'Названия этих фруктов встречаются в тексте:')
for k, v in result.items():
print(f'"{k}" - {v} раз(а)'
Задание 5
Имеются два файла, first.txt и second.txt. В первом файле
перечислены имена, во втором – должности:
Содержимое файла first.txt
Сергей Ковалев
Ирина Егорова
Никита Степанов
Марина Арефьева
Кирилл Евстегнеев
Елена Моисеева
Файл second.txt
мидл разработчик
девопс
тимлид
сеньор разработчик
продакт-менеджер
дизайнер
Напишите программу, которая открывает оба файла и выводит
сведения о сотрудниках в следующем формате:
Сотрудник Сергей Ковалев, должность - мидл разработчик
Сотрудник Ирина Егорова, должность - девопс
Сотрудник Никита Степанов, должность - тимлид
Сотрудник Марина Арефьева, должность - сеньор разработчик
Сотрудник Кирилл Евстегнеев, должность - продакт-менеджер
Сотрудник Елена Моисеева, должность – дизайнер
Решение:
with open('first.txt', 'r', encoding='utf-8') as file1,
open('second.txt', 'r', encoding='utf-8') as file2:
for line_x, line_y in zip(file1, file2):
print(f'Сотрудник {line_x.strip()}, должность - {line_y.strip()}')
Задание 6
Напишите программу, которая:
- генерирует коды букв русского алфавита от а до я;
- вставляет в полученный список код ё;
- записывает полный алфавит (строчный и прописной варианты каждой буквы) в столбик в файл alphabet.txt.
Содержимое файла после выполнения программы:
Аа
Бб
Вв
Гг
Дд
Ее
Ёё
Жж
Зз
Ии
Йй
Кк
Лл
Мм
Нн
Оо
Пп
Рр
Сс
Тт
Уу
Фф
Хх
Цц
Чч
Шш
Щщ
Ъъ
Ыы
Ьь
Ээ
Юю
Яя
Решение:
alpha = [i for i in range(ord('а'), ord('я') + 1)]
alpha.insert(6, 1105)
with open('alphabet.txt', 'w', encoding='utf-8') as file:
for i in alpha:
file.write(chr(i).upper() + chr(i) + 'n')
Задание 7
Сведения о доходах и расходах компании хранятся в двух
файлах, income.txt и
outcome.txt. Напишите программу для
подсчета прибыли компании.
Пример файла income.txt:
RUB100000
RUB200000
RUB200000
RUB500000
RUB600000
RUB100000
RUB700000
Пример файла outcome.txt:
-RUB1000
-RUB2000
-RUB50000
-RUB200000
-RUB10000
-RUB5000
-RUB6000
-RUB10000
-RUB19000
-RUB7000
Ожидаемый результат:
Прибыль за прошлый месяц: 2090000 RUB
Решение:
income, outcome = 0, 0
with open('income.txt', 'r', encoding='utf-8') as file1,
open('outcome.txt', 'r', encoding='utf-8') as file2:
for line in file1:
num = line.strip()[3:]
income += int(num)
for line in file2:
num = line.strip()[4:]
outcome += int(num)
print(f'Прибыль за прошлый месяц: {income - outcome} RUB')
Задание 8
Напишите программу, которая считывает сведения об
успеваемости по основным предметам из файла grades.txt,
и определяет, кто из студентов имеет средний балл >= 4.5.
Пример файла grades.txt:
Арефьева И. 5 5 4 4
Богданов С. 5 5 3 4
Гаврилов Е. 4 4 3 3
Егорова А. 3 3 3 4
Семенова Е. 4 3 3 4
Хворостов И. 5 4 5 5
Ожидаемый результат:
Арефьева И., средний балл: 4.50
Хворостов И., средний балл: 4.75
Решение:
result = {}
with open('grades.txt', 'r', encoding='utf-8') as file1:
for line in file1:
l = line.strip().split()
grades = [int(i) for i in l[-4:]]
aver_grade = sum(grades) / len(grades)
if aver_grade >= 4.5:
result[l[0] + ' ' + l[1]] = aver_grade
for student, aver_grade in result.items():
print(f'{student}, средний балл: {aver_grade:.2f}')
Задание 9
Напишите программу, которая получает от пользователя
название файла с информацией на русском языке, и выполняет транслитерацию
текста в соответствии с приведенным ниже словарем. Результат нужно записать в
файл result.txt.
Словарь:
translit = {'а': 'a', 'к': 'k', 'х': 'h', 'б': 'b', 'л': 'l', 'ц': 'c', 'в': 'v', 'м': 'm', 'ч': 'ch', 'г': 'g', 'н': 'n',
'ш': 'sh', 'д': 'd', 'о': 'o', 'щ': 'shh', 'е': 'e', 'п': 'p', 'ъ': '*', 'ё': 'jo', 'р': 'r', 'ы': 'y', 'ж': 'zh',
'с': 's', 'ь': "'", 'з': 'z', 'т': 't', 'э': 'je', 'и': 'i', 'у': 'u', 'ю': 'ju', 'й': 'j', 'ф': 'f', 'я': 'ya',
'А': 'A', 'К': 'K', 'Х': 'H', 'Б': 'B', 'Л': 'L', 'Ц': 'C', 'В': 'V', 'М': 'M', 'Ч': 'Ch', 'Г': 'G', 'Н': 'N',
'Ш': 'Sh', 'Д': 'D', 'О': 'O', 'Щ': 'Shh', 'Е': 'E', 'П': 'P', 'Ъ': '*', 'Ё': 'Jo', 'Р': 'R', 'Ы': 'Y', 'Ж': 'Zh',
'С': 'S', 'Ь': "'", 'З': 'Z', 'Т': 'T', 'Э': 'Je', 'И': 'I', 'У': 'U', 'Ю': 'Ju', 'Й': 'J', 'Ф': 'F', 'Я': 'Ya'}
Пример русского текста:
Python — это язык программирования, который широко используется в интернет-приложениях, разработке программного обеспечения, науке о данных и машинном обучении (ML). Разработчики используют Python, потому что он эффективен, прост в изучении и работает на разных платформах.
Ожидаемое содержимое result.txt:
Python — jeto yazyk programmirovaniya, kotoryj shiroko ispol'zuetsya v internet-prilozheniyah, razrabotke programmnogo obespecheniya, nauke o dannyh i mashinnom obuchenii (ML). Razrabotchiki ispol'zujut Python, potomu chto on jeffektiven, prost v izuchenii i rabotaet na raznyh platformah.
Решение:
translit = {'а': 'a', 'к': 'k', 'х': 'h', 'б': 'b', 'л': 'l', 'ц': 'c', 'в': 'v', 'м': 'm', 'ч': 'ch', 'г': 'g', 'н': 'n',
'ш': 'sh', 'д': 'd', 'о': 'o', 'щ': 'shh', 'е': 'e', 'п': 'p', 'ъ': '*', 'ё': 'jo', 'р': 'r', 'ы': 'y', 'ж': 'zh',
'с': 's', 'ь': "'", 'з': 'z', 'т': 't', 'э': 'je', 'и': 'i', 'у': 'u', 'ю': 'ju', 'й': 'j', 'ф': 'f', 'я': 'ya',
'А': 'A', 'К': 'K', 'Х': 'H', 'Б': 'B', 'Л': 'L', 'Ц': 'C', 'В': 'V', 'М': 'M', 'Ч': 'Ch', 'Г': 'G', 'Н': 'N',
'Ш': 'Sh', 'Д': 'D', 'О': 'O', 'Щ': 'Shh', 'Е': 'E', 'П': 'P', 'Ъ': '*', 'Ё': 'Jo', 'Р': 'R', 'Ы': 'Y', 'Ж': 'Zh',
'С': 'S', 'Ь': "'", 'З': 'Z', 'Т': 'T', 'Э': 'Je', 'И': 'I', 'У': 'U', 'Ю': 'Ju', 'Й': 'J', 'Ф': 'F', 'Я': 'Ya'}
filename = input()
with open(filename, 'r', encoding='utf-8') as source, open('result.txt', 'w', encoding='utf-8') as tr_result:
for l in source.read():
trans = translit.get(l.lower(), l)
tr_result.write(trans if l.islower() else trans.capitalize())
Задание 10
Имеется лог-файл crm_log.txt с
информацией о времени входа пользователей в CRM-систему и о времени выхода. Напишите программу, которая
определяет пользователей, работавших в системе более 4 часов, и записывает их
имена и фамилии в файл best_employees.txt.
Пример лога crm_log.txt:
Егор Тимофеев, 09:10, 16:50
Марина Абрамова, 12:00, 15:59
Никита Круглов, 09:10, 12:45
Анна Семенова, 08:10, 12:30
Юлия Сафонова, 10:10, 10:50
Михаил Колесников, 11:10, 12:10
Ожидаемый результат в файле best_employees.txt:
Егор Тимофеев
Анна Семенова
Решение:
with open('crm_log.txt', encoding='utf-8') as file_input,
open('best_employees.txt', 'w', encoding='utf-8') as file_output:
for line in file_input:
start, end = [int(h) * 60 + int(m) for t in line.split(', ')[1:] for h, m in [t.split(':')]]
if end - start > 240:
file_output.write(line.split(', ')[0] + 'n')
Подведем итоги
Python
предоставляет множество простых и удобных методов для работы с файловой
системой и файлами. С помощью этих методов можно легко:
- Получать любую информацию о файлах и директориях.
- Создавать, изменять, перемещать и удалять директории и файлы.
- Проводить любые операции с содержимым текстовых и двоичных файлов.
В следующей статье будем изучать регулярные выражения.
***
Содержание самоучителя
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
- Основы скрапинга и парсинга
- Основы ООП: инкапсуляция и наследование
- Основы ООП – абстракция и полиморфизм
- Графический интерфейс на Tkinter
***