• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Учим Python - [Работа с файлами] - Часть 9

Python_logo.png

Всех приветствую, дорогие друзья! Сегодня мы с вами научимся работать с файлами используя язык Python. Вообщем это новый урок по укрощению змеи(не той что вы подумали..) Приступим.

[Начало работы. Открываем файлы]

Используя Python(как и остальные языки программирования) можно проводить различную работу с файлами
  • Открывать
  • Читать
  • Добавлять что-либо новое
  • Удалять данные с файла
  • Закрывать)
Для начала давайте попробуем научится открывать файлы. Это делается очень просто. Для этого нам нужна специальная функция - open()
В качестве аргумента, функция open() берет путь до файла. Если же целевой файл находится с питоновским кодом в одной деректории, то можно указать только название файла.


Внимание!! Путь до целевого файла указывать только в кавычках, так как это строковый тип!!

Конструкция открытия файла выглядит примерно так:
Python:
file = open("file.txt")

[Запись в файл]

Помимо пути до файла, функция open принимает еще и определенные опции - режимы открытия. На моей схеме ниже представлены некоторые из них:
fil.png


При открытии файла с опцией w, все ранее содержащиеся в файле - стирается.
Для опций которые я описал выше существует функция - write()
Она используется для записи в файл каких-либо данных. Примерная конструкция записи в файл:

Python:
file = open("file.txt", 'w')
file.write("Этот текст будет в файле ;)")

[Чтение файлов]

Это, что касается записи. А для чтения используют опцию - r.
Для этой опции тоже существует специальная функция - read()
Конструкция с использованием данной функции совершенно иная.

Python:
file = open("file.txt", 'r')
readText = file.read()
print (readText)

Т.е. открывается файл и его содержимое записывается в переменную readText в следствии чего выводится.
И в конце концов файл закрываем. А закрывается файл так: file.close()
Помимо функции read() существует функция readlines() - она возвращает каждую строку файла, причем каждая строка является элементом списка!


Иногда могут произойти какие-либо ошибки при открытии/закрытии файла, поэтому мы можем использовать исключения дабы исправить какую-либо ошибку. Например вы открыли файл, но далее где-то ошиблись и файл все же нужно закрыть:
Python:
try:
    file = open("f.txt", 'a')
    file.write("Text")
finally:
    file.close()

Еще один способ закрытия файла даже в случае ошибки и вообще наипростеиший способ работы с файлами представлен ниже
Python:
with open("file.txt", 'a') as file:
    file.write("Text")

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


Домашнее Задание:
1. Создайте файл helloWorld.txt и запишите в него любой текст.
2. Прочтите файл из предыдущего задания средствами Python
3. Напишите программный код, который будет записывать ваше имя в файл так, что каждая новая строка - это одна буква вашего имени.
4. Объедение 2-е строки файла в одну.
**5. Напишите мини программу, которая будет запрашивать пароль из файла, но пароль в файле должен быть зашифрован!


Предыдущие части:

  1. Часть 1
  2. Часть 2
  3. Часть 3
  4. Часть 4
  5. Часть 5
  6. Часть 6
  7. Часть 7
  8. Часть 8
 

vag4b0nd

Green Team
24.05.2017
303
1 472
BIT
30
Не понял 5 задание
Вобщем: программа при первом ее использовании будет устанавливать пароль введенный пользователем. Пароль должен быть зашифрован и находится в каком-либо файле. При последующем использовании, программа должна брать пароль из файла и сравнивать его с введенным)))
 
  • Нравится
Реакции: Tihon49

Qmakake

Green Team
20.12.2017
88
55
BIT
9
Вобщем: программа при первом ее использовании будет устанавливать пароль введенный пользователем. Пароль должен быть зашифрован и находится в каком-либо файле. При последующем использовании, программа должна брать пароль из файла и сравнивать его с введенным)))
Спасибо, понял. )
 

Tayler

Green Team
08.07.2017
40
46
BIT
1
Ничего по сути и не описал..
Режимов открытия файла 13,а ты описал всего 3.
Функций у объекта файла больше,тот же метод tell,или readlines,который является для жизни необходимым...
 
  • Нравится
Реакции: DefWolf

vag4b0nd

Green Team
24.05.2017
303
1 472
BIT
30
Ничего по сути и не описал..
Режимов открытия файла 13,а ты описал всего 3.
Функций у объекта файла больше,тот же метод tell,или readlines,который является для жизни необходимым...
Предлогаю тебе самому взять и продолжить писать данный цикл ;)

Я не все дописываю это да. Но только по той простой причине, что я готовлю полный курс по питону для школы codeby. Поэтому немного и не договариваю.
 

Qmakake

Green Team
20.12.2017
88
55
BIT
9
Примерные сроки открытия школы известны? Терпения не хватает, а говорили про не, по-моему, ещё в декабре ((
 

Tayler

Green Team
08.07.2017
40
46
BIT
1
Предлогаю тебе самому взять и продолжить писать данный цикл ;)

Я не все дописываю это да. Но только по той простой причине, что я готовлю полный курс по питону для школы codeby. Поэтому немного и не договариваю.
Не,времени на это нету,ищу работу,до вот найти не могу =(
 

Tihon49

Green Team
06.01.2018
193
120
BIT
0
Мне кажется что ДЗ не кисло так превосходят по сложности то, что приводится в уроке.
 
C

Cenzor

Хорошим делом занимаетесь.
Как вам идея давать примеры из практики?
Например, для новичка, при работе с файлами, мега-полезной будет информация о кодировке, как при чтении, так и при открытии.
И рассказать о библиотеке codecs. Ведь при обработке информации собранной с нэта, зачастую вылетает исключение UnicodeEncodeError.
 
  • Нравится
Реакции: vag4b0nd
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!