1.Работа с файлами
Что бы открыть файл в питоне есть функция open() , которая принимает 2 аргумента , имя файла записанное в виде строки и режим в котором будем работать с файлом :
"r" = режим чтения (значение по умолчанию)
"w" = режим записи(содержимое удаляется) если файла не существует создает новый
"x" = открытие на запись, если файла не существует иначе исключение
"a" = режим дозаписи , изменения сохраняются в конце файла
"b" = чтение в двоичном коде
"t" = текстовый режим (значение по умолчанию)
"+" = запись и чтение
Возможно комбинирование режимов ("rb") чтение в двоичном коде
При выполнении данного примера интерпретатор выведет информацию о файле:
Функция open() возвращает объект файла , возможно назначить объект переменной что бы обратиться к нему позже
Переменная не будет содержать информацию которая находится в файле , а позволяет использовать методы для чтения и изменения содержимого
Для считывания содержимого файла используется метод read(), метод возвращает строковое представление содержимого файла , которое возможно присвоить переменной
Метод вызывается с помощью (.)
Теперь можно использовать функцию print() для вывода значения присвоенного переменной f
2.Split()
Что бы преобразовать строковый объект в список используется метод split() с аргументом разделителя, если вы имеете строку\файл с большим кол-вом (допустим имен написанных через пробел или запятую) использовать метод split() быстрее чем метод append() для создания списка
Берем данные из прошлого примера (one,two,three,four,five) содержимое файла sample.txt
Теперь возможно обращение по индексу ,длинна , срез списка , добавление и удаление элементов
3.Цикл for
Предположим что работаете вы в бухгалтерии , и вот уже пришло время начислять рабочим зарплату , но ваш файл с фамилиями и кол-вом денег которые нужно начислить людям благодаря стараниям некоторой олдскульной бухгалтерши был пофачен и теперь состоит из кучи белеберды все фамилии написаны в ряд с пробелом по примеру (vasya:9000 masha:3700) и так далее.
И теперь что бы разобраться в нем нужно либо переписывать его вручную или же воспользоваться циклом for для удобного вывода
Как работает цикл for :
Переменная итератора name является временной переменной которая доступна только в цикле for
Переменной name присваивается индекс [0] в списке zp_list и выводит текущее значение переменной name функцией print()
Переменной name присваивается индекс [1] в списке zp_list и выводит текущее значение переменной name функцией print()
И так далее до последнего элемента списка, как только элементы в списке заканчиваются , цикл for перестает работать
4.Список списков
Это список в котором каждый элемент является списком(сам не верю что написал эту тавтологию, бред какой то)используя цикл for для разделения элементов списка методом split() и добавления в конечный список методом append()
Как работает цикл for в данном примере:
Временная переменная name принимает индекс [0] из списка zp_list , деление переменной name методом split() с разделителем (",") , присвоение полученного значения переменной sp_list .
Добавление в конечный список fin_list методом append() переменной sp_list.
И так далее до последнего элемента , после завершения цикла for
функция print() находится за пределами цикла и выводит конечный список fin_list
Что бы открыть файл в питоне есть функция open() , которая принимает 2 аргумента , имя файла записанное в виде строки и режим в котором будем работать с файлом :
"r" = режим чтения (значение по умолчанию)
"w" = режим записи(содержимое удаляется) если файла не существует создает новый
"x" = открытие на запись, если файла не существует иначе исключение
"a" = режим дозаписи , изменения сохраняются в конце файла
"b" = чтение в двоичном коде
"t" = текстовый режим (значение по умолчанию)
"+" = запись и чтение
Возможно комбинирование режимов ("rb") чтение в двоичном коде
Python:
>>> open("sample.txt", "r") # файл находится в папке с питоном
>>> open("C:\py\sample.txt", "r") # указывается путь к файлу
Python:
<_io.TextIOWrapper name='sample.txt' mode='r' encoding='cp1251'>
# Имя файла , режим работы с ним и кодировка
Переменная не будет содержать информацию которая находится в файле , а позволяет использовать методы для чтения и изменения содержимого
Python:
>>> file = open(sample.txt", "r")
Метод вызывается с помощью (.)
Python:
>>> file = open("sample.txt", "r")
>>> f = file.read()
Python:
>>> file = open("sample.txt", "r")
>>> f = file.read()
>>> print(f)
one,two,three,four,five
2.Split()
Что бы преобразовать строковый объект в список используется метод split() с аргументом разделителя, если вы имеете строку\файл с большим кол-вом (допустим имен написанных через пробел или запятую) использовать метод split() быстрее чем метод append() для создания списка
Берем данные из прошлого примера (one,two,three,four,five) содержимое файла sample.txt
Python:
>>> file = open("sample.txt", "r")
>>> f = file.read()
>>> list = f.split(",")
# содержимое файла которое было считано методом read()
# разделяем методом split() c запятой в виде разделителя (,)
>>> print(list)
['one', 'two', 'three', 'four', 'five']
Python:
>>> list[0]
'one'
Python:
>>> len(list)
5
Python:
>>> list[0:3]
# напоминалка вывод с 0 по 2 элементов , (3) считается исключением
['one', 'two', 'three']
Python:
>>> list.remove("one")
>>> print(list)
['two', 'three', 'four', 'five']
3.Цикл for
Предположим что работаете вы в бухгалтерии , и вот уже пришло время начислять рабочим зарплату , но ваш файл с фамилиями и кол-вом денег которые нужно начислить людям благодаря стараниям некоторой олдскульной бухгалтерши был пофачен и теперь состоит из кучи белеберды все фамилии написаны в ряд с пробелом по примеру (vasya:9000 masha:3700) и так далее.
И теперь что бы разобраться в нем нужно либо переписывать его вручную или же воспользоваться циклом for для удобного вывода
Python:
>>> f = open("zarplata.txt", "r")
# открываем файл функцией open() с режимом чтения
>>> g = f.read()
# содержимое файла считывается методом read() и присваивается переменной g
>>> zp_list = g.split(" ")
# значение переменной g делится методом split() с разделителем (" ")
# и присваивается переменной zp_list
>>> print(zp_list) # смотрим получившийся список
['vasya:9000', 'fedya:9000', 'masha:8200', 'petya:7700', 'sasha:5950', 'inna:4700']
>>> for name in zp_list: # в конце основного блока цикла всегда ставится двоеточие ":"
>>> print(name) # вложенный блок
# как работает цикл for читайте чуть ниже
vasya:9000
fedya:9000
masha:8200
petya:7700
sasha:5950
inna:4700
Переменная итератора name является временной переменной которая доступна только в цикле for
Переменной name присваивается индекс [0] в списке zp_list и выводит текущее значение переменной name функцией print()
Переменной name присваивается индекс [1] в списке zp_list и выводит текущее значение переменной name функцией print()
И так далее до последнего элемента списка, как только элементы в списке заканчиваются , цикл for перестает работать
4.Список списков
Это список в котором каждый элемент является списком(сам не верю что написал эту тавтологию, бред какой то)используя цикл for для разделения элементов списка методом split() и добавления в конечный список методом append()
Python:
>>> zp_list = ['vasya:9000', 'fedya:9000', 'masha:8200', 'petya:7700', 'sasha:5950', 'inna:4700']
# список элементов
>>> fin_list = [] # пустой список
>>> for name in zp_list:
>>> sp_list = name.split(",")
# деление списка , разделителем (",")
>>> fin_list.append(sp_list) # добавление элементов методом append() в конечный список
>>> print(fin_list) # функция за пределами цикла для вывода конечного результата
[['vasya:9000'], ['fedya:9000'], ['masha:8200'], ['petya:7700'], ['sasha:5950'], ['inna:4700']]
Как работает цикл for в данном примере:
Временная переменная name принимает индекс [0] из списка zp_list , деление переменной name методом split() с разделителем (",") , присвоение полученного значения переменной sp_list .
Добавление в конечный список fin_list методом append() переменной sp_list.
И так далее до последнего элемента , после завершения цикла for
функция print() находится за пределами цикла и выводит конечный список fin_list
Последнее редактирование: