Слайд 2
файлы текстовые двоичные « plain text » : текст, разбитый на строки; из специальных символов только символы перехода на новую строку любые символы рисунки, звуки, видео, …
Слайд 3
Fin = open ( "input.txt" ) Fout = open ( "output.txt", "w" ) # здесь работаем с файлами Fi n.close () F out.close () файловые переменные- указатели "r" - чтение "w" – запись "a" – добавление по умолчанию – на чтение (режим "r" ) открыть файл работа с файлом закрыть файл хлеб хлеб начинка
Слайд 4
Ввод данных Fin = open( "input. txt" ) s = Fin. readline () # "1 2" Чтение строки : Чтение строки и разбивка по пробелам : s = Fin. readline (). split () # ["1","2"] Чтение целых чисел : s = Fin. readline (). split () # ["1","2"] a, b = int (s[0]), int (s[1]) или так : a, b = [ int (x) for x in s] или так : a, b = map ( int, s )
Слайд 5
Вывод данных в файл a = 1 b = 2 Fout = open ( "output. txt", "w" ) Fout. write ( "{:d} + {:d} = {:d}\ n". format ( a, b, a+b ) ) F out.close ( ) Все данные преобразовать в строку! !
Слайд 6: Чтение неизвестного количества данных
Задача. В файле записано в столбик неизвестное количество чисел. Найти их сумму. пока не конец файла прочитать число из файла добавить его к сумме Fin = open ( "input.txt" ) sum = 0 while True : s = Fin. readline () if not s: break sum += int (s) Fin. close ()
Слайд 7
sum = 0 Fin = open ( "input.txt" ) lst = Fin. readlines () for s in lst : sum += int (s) Fin. close () Задача. В файле записано в столбик неизвестное количество чисел. Найти их сумму. sum = 0 with open ( "input.txt" ) as Fin: for s in Fin: sum += int (s) sum = 0 for s in open ( "input.txt" ): sum += int (s)
Слайд 8
Обработка массивов Ввод массива : A = [] while True : s = Fin. readline () if not s: break A. append ( int ( s ) ) Ввод в стиле Python : s = Fin. read (). split () A = list ( map ( int, s) ) Сортировка : A. sort ()
Слайд 9
Обработка массивов Вывод результата : Fout = open ( "output.txt", "w" ) Fout. write ( str (A) ) Fout. close () или так : for x in A: Fout. write ( str (x)+ "\n" ) или так : for x in A: Fout. write ( "{:4d}". format (x) )
Слайд 10: Обработка строк
10 Задача. В файле записано данные о собаках: в каждой строчке кличка собаки, ее возраст и порода: Мухтар 4 немецкая овчарка Вывести в другой файл сведения о собаках, которым меньше 5 лет. пока не конец файла Fin прочитать строку из файла Fin разобрать строку – выделить возраст если возраст < 5 то записать строку в файл Fout
Слайд 11: Чтение данных из файла
11 Чтение одной строки : s = Fin. readline () Разбивка по пробелам : data = s. split () Выделение возраста : sAge = data[ 1 ] age = int ( s Age ) Кратко всё вместе : s = Fin. readline () age = int ( s. split ()[ 1 ] )
Слайд 12: Обработка строк
12 Fin = open ( "input.txt" ) Fout = open ( "output.txt", "w" ) while True : s = Fin. readline () if not s: break age = int ( s. split ()[ 1 ] ) if age < 5 : Fout. write ( s ) Fin.close () Fout.close () Полная программа:
Последний слайд презентации: Работа с Файлами: Обработка строк
13 lst = Fin. readlines () for s in lst : age = int ( s. split ()[ 1 ] ) if age < 5 : Fout. write ( s ) или так: for s in open ( "input.txt" ): age = int ( s. split ()[ 1 ] ) if age < 5 : Fout. write ( s ) или так: