Similar presentations:
Работа с файлами
1.
Работа с файламиПимкина Г.И.
11.04.2023г.
2.
Файлы и действия с нимиФайлы могут содержать информацию текстовую и двоичную .
Текстовые файлы человек может прочитать и в них из специальных
символов только символ перехода на новую строку
Двоичные содержат специальную информацию в двоичном коде.
Действия совершаемые с файлвми
"r" - чтение
"w" – запись
"a" – добавление
3.
Открытие файла и закрытие файлаFin = open (
"input.txt ", " r " )
Fin.close()
Fout = open (
"output.txt", "w" )
Fout.close()
Fapp = open (
Fapp.close()
"output.txt", " a" )
4.
Запись информации в файлa = 1
b = 2
Fout = open(
"output.txt", "w" )
Fout.write (
f"{a} + {b} = {a+b}\n" )
Fout.close()
5.
Запись информации в файлFout = open(
for
"output.txt", "w" )
i in range(10):
Fout.write (
Fout.close()
f"{a} + {b} = {a+b}\n" )
6.
Запись информации в файлfrom
random import randint
Fout = open(
for
"output2.txt", "w" )
i in range(10):
a=randint(0,100)
Fout.write (
Fout.close()
f"{a}\n" )
7.
Запись информации в файлFout = open(
for
"output3.txt", "w" )
i in range(10):
a=int(input())
Fout.write (
Fout.close()
f"{a}\n" )
8.
Чтение из файлаFin = open( "input.txt" )
Fin = open( "input.txt ", " r " )
9.
Алгоритмизация и программирование, язык Python, 10 класс9
Ввод данных
Fin = open( "input.txt" )
Чтение строки:
s = Fin.readline()
# "1 2"
Чтение строки и разбивка по пробелам:
s = Fin.readline().split()
# ["1","2"]
Чтение целых чисел:
s = Fin.readline().split()
a, b = int(s[0]), int(s[1])
# ["1","2"]
или так:
a, b = [int(x) for x in s]
или так:
a, b = map( int, s )
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
10.
Алгоритмизация и программирование, язык Python, 10 классЧтение неизвестного количества данных
Задача. В файле записано в столбик неизвестное количество
чисел. Найти их сумму.
Fin = open ( "input.txt" )
sum = 0
while True:
s = Fin.readline()
if not s: break
sum += int(s)
Fin.close()
print("s=",sum)
К.Ю. Поляков, Е.А. Ерёмин, 2018
Fin = open ( "input.txt" )
sum = 0
lst = Fin.readlines()
for s in lst:
sum += int(s)
Fin.close()
print("s=",sum)
print("lst=",len(lst))
http://kpolyakov.spb.ru
11.
Алгоритмизация и программирование, язык Python, 10 класс11
Задачи
«A»: Напишите программу, которая находит среднее
арифметическое всех чисел, записанных в файле в
столбик, и выводит результат в другой файл.
«B»: Напишите программу, которая находит минимальное и
максимальное среди чётных положительных чисел,
записанных в файле, и выводит результат в другой файл.
Учтите, что таких чисел может вообще не быть.
При определении минимального и максимального не
использовать функции мин и макс.
«C»: В файле в столбик записаны целые числа, сколько их –
неизвестно. Напишите программу, которая определяет
длину самой длинной цепочки идущих подряд одинаковых
чисел и выводит результат в другой файл.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
12.
Алгоритмизация и программирование, язык Python, 10 класс12
Обработка массивов
Ввод массива:
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()
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
13.
Алгоритмизация и программирование, язык Python, 10 классЗадача. В файле записаны в столбик целые числа.
Вывести в другой текстовый файл те же числа,
отсортированные в порядке возрастания.
Fin = open ( "output4.txt" )
A = []
while True:
s = Fin.readline()
if not s: break
A.append ( int(s) )
print(A)
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
14.
Алгоритмизация и программирование, язык Python, 10 классfor i in range(len(A)):
m=A[i]
k=i
for j in range(i,len(A)):
if m>A[j]:
m=A[j]
k=j
A[k]=A[i]
A[i]=m
print(A)
Fin.close()
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
15.
Алгоритмизация и программирование, язык Python, 10 классFin1 = open ("output6.txt" ,"w")
for i in range(len(A)):
print(A[i])
Fin1.write(str(A[i])+"\n" )
Fin1.close()
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
16.
Алгоритмизация и программирование, язык Python, 10 класс16
Обработка массивов
Вывод результата:
Fout = open ( "output.txt", "w" )
Fout.write ( str(A) )
[1, 2, 3]
Fout.close()
или так:
for x in A:
Fout.write ( str(x)+"\n" )
1
2
3
или так:
for x in A:
Fout.write ( f"{x:4d}" )
1
К.Ю. Поляков, Е.А. Ерёмин, 2018
2
http://kpolyakov.spb.ru
3
17.
Алгоритмизация и программирование, язык Python, 10 класс17
Задачи
«A»: В файле в столбик записаны числа. Отсортировать их по
возрастанию последней цифры и записать в другой файл.
«B»: В файле в столбик записаны числа. Отсортировать их по
возрастанию суммы цифр и записать в другой файл.
Используйте функцию, которая вычисляет сумму цифр
числа.
«C»: В двух файлах записаны отсортированные по возрастанию
массивы неизвестной длины. Объединить их и записать
результат в третий файл. Полученный массив также
должен быть отсортирован по возрастанию.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru