Вы находитесь на странице: 1из 16

Фай лы

Azamat Kibekbaev
Работа с фай лами

• Python поддерживает множество различных типов файлов,


но условно их можно разделить на два виде: текстовые и
бинарные. Текстовые файлы - это к примеру файлы с
расширением cvs, txt, html, в общем любые файлы,
которые сохраняют информацию в текстовом виде.
Бинарные файлы - это изображения, аудио и видеофайлы
и т.д. В зависимости от типа файла работа с ним может
немного отличаться.
• При работе с файлами необходимо соблюдать некоторую
последовательность операций:

• Открытие файла с помощью метода open()


• Чтение файла с помощью метода read() или запись в файл
посредством метода write()
• Закрытие файла методом close()
• Чтобы начать работу с файлом, его надо открыть с
помощью функции open(), которая имеет следующее
формальное определение:

• open(file, mode)

• Первый параметр функции представляет путь к файлу.


Путь файла может быть абсолютным, то есть начинаться с
буквы диска, например, C://somedir/somefile.txt. Либо
можно быть относительным,
например, somedir/somefile.txt - в этом случае поиск файла
будет идти относительно расположения запущенного
скрипта Python.
• Второй передаваемый аргумент - mode устанавливает
режим открытия файла в зависимости от того, что мы
собираемся с ним делать. Существует 3 общих режима:
• r (Read). Файл открывается для чтения. Если файл не
найден, то генерируется исключение FileNotFoundError
• w (Write). Файл открывается для записи. Если файл
отсутствует, то он создается. Если подобный файл уже есть,
то он создается заново, и соответственно старые данные в
нем стираются.
• a (Append). Файл открывается для дозаписи. Если файл
отсутствует, то он создается. Если подобный файл уже есть,
то данные записываются в его конец.
• Например, откроем для записи текстовый файл “text.txt":

• one - 1 - I
• two - 2 - II
• three - 3 - III
• four - 4 - IV
• five - 5 - V

• handle = open("text.txt", "r")


• data = handle.read()
• print(data)
• handle.close()
• Для того, чтобы читать файл построчно существует метод
readline():

• >>> f1 = open('data.txt')
• >>> f1.readline()
• 'one - 1 - I\n‘
• >>> f1.readline()
• 'two - 2 - II\n'

• Метод readlines() считывает сразу все строки и создает список:

• >>> f1 = open('data.txt')
• >>> f1.readlines()
• >>> for i in open('data.txt'):
• ... print(i)

• one - 1 - I
• two - 2 - II
• three - 3 - III
• four - 4 - IV
• five - 5 – V

• >>> nums = []
• >>> for i in open('data.txt'):
• ... nums.append(i[:-1])
• ...
• >>> nums
• ['one - 1 - I', 'two - 2 - II', 'three - 3 - III', 'four - 4 - IV', 'five - 5 - V']
• # read the entire file as one string
• with open('filename.txt') as f:
• data = f.read()

• # Iterate over the lines of the File


• with open('filename.txt') as f:
• for line in f :
• print(line, end=' ')
Пишем в фай лах в Python
• handle = open("output.txt", "w")
• handle.write("This is a test!")
• handle.close()

• Запись в файл выполняется с помощью методов write() и writelines(). Во


второй можно передать структуру данных:

• >>> l = ['tree', 'four']


• >>> f2 = open('newdata.txt', 'w')
• >>> f2.write('one')
• 3
• >>> f2.write(' two')
• 4
• >>> f2.writelines(l)
• Не забывайте, что в режиме ‘w’ содержимое файла стирается
перед записью. В случае, если мы хотим добавить текст без
удаления, мы можем воспользоваться режимом “a”:

• text_file = open("text.txt", "a")


• text_file.write("\nGuido Van Rossum азамат!\nЖакшы нерсе ойлоп
тапкан экен!")
• text_file.close()

• Теперь проверим содержимое обновленного файла:


• text_file = open("text.txt", "r")
• text = text_file.read()
• print(text)
• text_file.close()
• with open('filename' , 'wt') as f:
• f.write ('Hello, This is sample content.\n')

• # This will create an error that the file 'filename' doesn't exist.

• with open ('filename.txt' , 'xt') as f:


• f.write ('Hello, This is sample content.\n')
Практическая работа
• Написать программу, которая создаст новый файл
kyrgyzstan.txt и запишет в него следующий текст:
•  
• Kyrgyzstan, country of Central Asia. It is bounded by
Kazakhstan on the northwest and north, by China on the east
and south, and by Tajikistan and Uzbekistan on the south and
west. Most of Kyrgyzstan’s borders run along mountain crests.
The capital is Bishkek (known from 1862 to 1926 as Pishpek
and from 1926 to 1991 as Frunze).
•  
• Затем она должна открыть этот файл и вывести на экран
количество символов в файле.
• Написать программу, которая откроет созданный в задаче 1
файл kyrgyzstan.txt. После этого необходимо в файл добавить
следующий текст:
•  
• The Kyrgyz, a Muslim Turkic people, constitute more than half the
population. The history of the Kyrgyz in what is now Kyrgyzstan
dates at least to the 17th century. Kyrgyzstan, known under
Russian and Soviet rule as Kirgiziya, was conquered by tsarist
Russian forces in the 19th century. Formerly a constituent (union)
republic of the U.S.S.R., Kyrgyzstan declared its independence on
August 31, 1991.
•  
• При этом не удаляйте имеющийся текст в файле kyrgyzstan.txt.
После этого выведите на экран весь текст данного файла.
• Создайте файл nums.txt, содержащий несколько чисел,
записанных через пробел. Напишите программу, которая
подсчитывает и выводит на экран общую сумму чисел,
хранящихся в этом файле.

• Напишите программу на python, чтобы найти самые


длинные слова.

• Напишите программу Python, чтобы записать содержимое


списка в файл.