90.17K
Category: programmingprogramming

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

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
English     Русский Rules