Работа с файлами в питон

15 января 2019 - Администратор

Работа с файлами Python Запись и считывание информации в файлы в питон

В этом уроке мы разберём, как читать файлы и писать в файлах в Питоне. В файлы записываются результаты работы программы, которые можно потом использовать в других приложениях. Поэтому необходимо уметь в Питон записывать информацию в файлыТакже в файлах может храниться большой объем входной информации, которую должна обработать программа. Поэтому необходимо уметь считывать информацию из файлов в python.
Чтобы начать работу с файлом  в Питон, нужно открыть файл. Открыть файл в Питон можно, прописав команду
with open(“file.ext”, mode) as name: имя перменной файла
with, open и as это ключевые слова. Команда open() открывает файл с именем “file” с разрешением файла “ext”. Параметр mode отвечает за режим открытия файла. Необходимо указать полный путь к файлу, причем используются слеши Например, можно открыть файл только для считывания информации из файла, можно открыть файл для добавления в него информации, можно просто создать новый файл с заданным именем. Название и расширение файла пишется в кавычках, расширение файла пишется после названия файла через точку, режим открытия пишется в кавычках. В таблице ниже приведены некоторые режимы открытия файла в Питон. 

Чтение из файла в Python

 Разберём режим чтения файла “r”. Создайте новую программу в Spyder, сохраните её на Рабочем столе. Там же создайте текстовый документ text с расширением txt. Внутри напишите следующий текст.
1) Привет! Я первая строка.
2) Вторая строка.
3) Третья строка.
Чтобы вывести в программе  Питон  в консоль весь файл, используйте команду f.read().
Пример. Программа python читает весь файл и выводит его в консоль.
with open("text.txt", "r") as f:
    text = f.read()
    print(text)

Команда f.read(n) может принимать аргумент n, n это количество знаков с начала, которое будет считываться из файла. Например, если будет исполняться команда f.read(50), то программа выведет 50 знаков с начала файла.
Пример. Программа в Python для считывания опредленного количества знаков
with open("text.txt", "r") as f:
    text = f.read(50)
    print(text)

Если вы хотите читать текст не с начала файла, а с какого-либо символа, используйте команду f.seek(n), n это символ, с которого начнётся чтение файла. Файл начинается с нулевого символа.
Пример. Программа на Python для чтение файла с начала второй строки.
with open("text.txt", "r") as f:
    f.seek(27)
    text = f.read(50)
    print(text)

Python позволяет считать все строки текста файла в отдельный массив с помощью команды f.readlines()
Пример. Программа python выводит в консоль третью строку файла.
with open("text.txt", "r") as f:
    text = f.readlines()
    print(text[2])

Если вы хотите считывать все строки по отдельности, не записывая их в массив, используется команда f.readline()  Команда будет считывать одну строку из файла. Если использовать эту команду несколько раз, то они будут выводить разные строки. Например, если вы написали две команды f.readline(), то первая команда выведет первую строку, вторая команда выведет вторую строку.
Пример программы python считывание строк из файла с помощью команды f.readline().
with open("text.txt", "r") as f:
    text = f.readline()
    print(text)
    print(f.readline())

Часто отдельные части данных разделены каким-либо знаком. Python заменять эти знаки из строк с помощью команды f.replace(start, final), где start это знак, который надо заменить, final это знак, на который надо заменить.
Пример программы, заменяющей все пробелы в строке на знак +.
string = "Всем привет! Я строка."
print(string.replace(" ", "+"))

Запись данных в файл в python

Разберём режим добавления информации в файл в Питон  “w” Для добавления информации в файл в python используется команда f.write(“text”) Эта команда удаляет весь старый текст в файле и вместо него пишет новый. Чтобы это увидеть, перед запуском программы с этой командой посмотрите в файл text.txt, там должны быть строки текста. После исполнения программы с этой командой зайдите в тот же файл, там не должно быть старых строк, вместо них будет текст, который вы написали в команде.
Пример программа на Python запись текста в файл с использованием команды f.write().
with open("text.txt", "w") as f:
    f.write("Текст.")

Вместо этого текста
1) Привет! Я первая строка.
2) Вторая строка.
3) Третья строка.
Должна появиться эта строка
Текст.
Чтобы написать несколько строк, используйте команду f.writelines(line), где line это массив со строками, которые нужно напечатать.
Пример. Программа нв Python для записи массива строк в файл
with open("text.txt", "w") as f:
    f.writelines(["Первый элемент. ", "Вторая строка."])

Разберём режим добавления информации “a”. Этот режим отличается от “w” тем, что он не удаляет старую информацию, когда пишет, в отличии от “w”. Все команды в режиме “a” идентичны командам в режиме “w”, но в режиме “a” команды не удаляют старый текст, а пишут новый в конце файла.
Разберём большой пример работы с файлами в Python. Дан текстовый файл data с двумя столбцами и десятью строками однозначных или двузначных чисел. Числа разделены пробелом. Для каждой строки нужно найти среднее этих чисел и вывести их в новый текстовый файл result.
Файл data.
11 47
59 15
2 52
64 48
58 88
59 86
37 39
19 92
48 85
16 78
Введём массив для обычных строк line[], массив для строк без пробелов aC[], массив для чисел в каждом столбце a1[] и a2[] и массив res[], в котором будут находиться средние значения.
Откроем файл data.txt и считаем из него числа. Введём цикл for на 10 итераций (повторений) по количеству строк. Считаем строку под номером i с помощью команды f.readline() и запишем её в массив с индексом i line[i].
line[i] = f.readline()
Чтобы удалить пробелы между числами, используем команду line[i].replace(“ ”, “”), при её исполнении все пробелы в строке под номером i заменятся на пустую строку. Чтобы оперировать с получившимися числами, нужно перевести их из строк в числа, для этого используется int(aC[i]). У нас получаются трёх- или четырёхзначные числа. Чтобы отделить первое число от второго, нужно использовать целочисленное деление. В целых числах разделим каждый элемент массив aC[] на 100, чтобы отбросить часть числа до сотых.
a1[i] = aC[i] // 100
Например, у нас есть число 1147, это комбинация чисел 11 и 47. Если это число мы разделим на 100, то целая часть результата будет равна 11, а остаток будет равен 47. Деление в целых числах отбрасывает остаток, оставляя только целую часть. Таким образом, мы получим первое число. Второе число будет равно остатку от деления на 100.
a2[i] = aC[i] % 100
Мы получили два числа от каждой строки. Теперь нужно найти их среднее арифметическое. Все средние значения мы запишем в массив res[i].
for i in range(10):
    res[i] = (a1[i] + a2[i]) / 2
Чтобы записать все результаты в новый файл, откроем файл result.txt в режиме “a”. С помощью цикла for запишем все результаты в отдельные строки.
with open("result.txt", "a") as result:
    for i in range(10):
        res[i] = str(res[i])
        result.write(res[i] + " ")

Полный код программы python считывание числовых столбцов из файла и запись в файл столбца средних значений
# вводим массивы
line = {} # строки
aC = {} # строки без пробелов 
a1 = {} # первое число
a2 = {} # второе число
res = {} # результат - среднее арифметическое
# выводится в новый файл

with open("data.txt", "r") as f:
    for i in range(10):
        line[i] = f.readline()
        aC[i] = line[i].replace(" ", "")
        aC[i] = int(aC[i])
        a1[i] = aC[i] // 100
        a2[i] = aC[i] % 100     
for i in range(10):
    res[i] = (a1[i] + a2[i]) / 2
    print(res[i])

with open("result.txt", "a") as result:
    for i in range(10):
        res[i] = str(res[i])
        result.write(res[i] + " ")

Вернуться к содержанию Следующая тема Библиотека NumPy в Python матрицы в питон

Поделиться:

 
Комментарии (0)

Нет комментариев. Ваш будет первым!