Учебники

Объектно-ориентированный Python — файлы и строки

Строки — самые популярные типы данных, используемые в каждом языке программирования. Зачем? Поскольку мы понимаем текст лучше, чем числа, поэтому при написании и разговоре мы используем текст и слова, так же как и в программировании мы используем строки. В строке мы анализируем текст, анализируем семантику текста и выполняем анализ данных — и все эти данные — текст, потребляемый человеком. Строка в Python неизменна.

Манипуляция строк

В Python строка может быть помечена несколькими способами, используя одинарные кавычки (‘), двойные кавычки (“) или даже тройные кавычки (‘ ») в случае многострочных строк.

>>> # String Examples
>>> a = "hello"
>>> b = ''' A Multi line string,
Simple!'''
>>> e = ('Multiple' 'strings' 'togethers')

Манипулирование строками очень полезно и очень широко используется в каждом языке. Часто программисты обязаны разбивать строки и внимательно их изучать.

Строки могут быть перебраны (символ за символом), разрезаны или объединены. Синтаксис такой же, как для списков.

Класс str имеет множество методов для упрощения работы со строками. Команды dir и help предоставляют руководство в интерпретаторе Python, как их использовать.

Ниже приведены некоторые из наиболее часто используемых строковых методов.

Sr.No. Метод и описание
1

ISALPHA ()

Проверяет, все ли символы являются алфавитами

2

isdigit ()

Проверяет цифры символов

3

isdecimal ()

Проверяет десятичные символы

4

IsNumeric ()

проверяет числовые символы

5

находить()

Возвращает самый высокий индекс подстрок

6

istitle ()

Проверяет наличие титульных строк

7

присоединиться()

Возвращает объединенную строку

8

ниже ()

возвращает строку в нижнем регистре

9

Верхняя ()

возвращает строку в верхнем регистре

10

partion ()

Возвращает кортеж

11

ByteArray ()

Возвращает массив заданного размера байта

12

перечислить ()

Возвращает объект перечисления

13

isprintable ()

Проверяет печатный характер

ISALPHA ()

Проверяет, все ли символы являются алфавитами

isdigit ()

Проверяет цифры символов

isdecimal ()

Проверяет десятичные символы

IsNumeric ()

проверяет числовые символы

находить()

Возвращает самый высокий индекс подстрок

istitle ()

Проверяет наличие титульных строк

присоединиться()

Возвращает объединенную строку

ниже ()

возвращает строку в нижнем регистре

Верхняя ()

возвращает строку в верхнем регистре

partion ()

Возвращает кортеж

ByteArray ()

Возвращает массив заданного размера байта

перечислить ()

Возвращает объект перечисления

isprintable ()

Проверяет печатный характер

Давайте попробуем запустить несколько строковых методов,

>>> str1 = 'Hello World!'
>>> str1.startswith('h')
False
>>> str1.startswith('H')
True
>>> str1.endswith('d')
False
>>> str1.endswith('d!')
True
>>> str1.find('o')
4
>>> #Above returns the index of the first occurence of the character/substring.
>>> str1.find('lo')
3
>>> str1.upper()
'HELLO WORLD!'
>>> str1.lower()
'hello world!'
>>> str1.index('b')
Traceback (most recent call last):
   File "<pyshell#19>", line 1, in <module>
      str1.index('b')
ValueError: substring not found
>>> s = ('hello How Are You')
>>> s.split(' ')
['hello', 'How', 'Are', 'You']
>>> s1 = s.split(' ')
>>> '*'.join(s1)
'hello*How*Are*You'
>>> s.partition(' ')
('hello', ' ', 'How Are You')
>>>

Форматирование строк

В Python 3.x форматирование строк изменилось, теперь оно более логично и более гибко. Форматирование может быть выполнено с использованием метода format () или знака% (старый стиль) в строке формата.

Строка может содержать буквенный текст или поля замены, разделенные фигурными скобками {}, и каждое поле замены может содержать либо числовой индекс позиционного аргумента, либо имя ключевого аргумента.

синтаксис

str.format(*args, **kwargs)

Основное форматирование

>>> '{} {}'.format('Example', 'One')
'Example One'
>>> '{} {}'.format('pie', '3.1415926')
'pie 3.1415926'

Приведенный ниже пример позволяет изменить порядок отображения без изменения аргументов.

>>> '{1} {0}'.format('pie', '3.1415926')
'3.1415926 pie'

Обивка и выравнивание строк

Значение может быть дополнено до определенной длины.

>>> #Padding Character, can be space or special character
>>> '{:12}'.format('PYTHON')
'PYTHON '
>>> '{:>12}'.format('PYTHON')
' PYTHON'
>>> '{:<{}s}'.format('PYTHON',12)
'PYTHON '
>>> '{:*<12}'.format('PYTHON')
'PYTHON******'
>>> '{:*^12}'.format('PYTHON')
'***PYTHON***'
>>> '{:.15}'.format('PYTHON OBJECT ORIENTED PROGRAMMING')
'PYTHON OBJECT O'
>>> #Above, truncated 15 characters from the left side of a specified string
>>> '{:.{}}'.format('PYTHON OBJECT ORIENTED',15)
'PYTHON OBJECT O'
>>> #Named Placeholders
>>> data = {'Name':'Raghu', 'Place':'Bangalore'}
>>> '{Name} {Place}'.format(**data)
'Raghu Bangalore'
>>> #Datetime
>>> from datetime import datetime
>>> '{:%Y/%m/%d.%H:%M}'.format(datetime(2018,3,26,9,57))
'2018/03/26.09:57'

Строки Unicode

Строки как наборы неизменяемых символов Юникода. Строки Unicode предоставляют возможность создавать программное обеспечение или программы, которые работают везде, потому что строки Unicode могут представлять любой возможный символ, а не только символы ASCII.

Многие операции ввода-вывода знают, как обращаться с байтами, даже если объект байтов ссылается на текстовые данные. Поэтому очень важно знать, как обмениваться между байтами и Unicode.

Преобразование текста в байты

Преобразование строк в байтовый объект называется кодированием. Существует множество форм кодирования, наиболее распространенными из которых являются: PNG; JPEG, MP3, WAV, ASCII, UTF-8 и т. Д. Также этот формат (кодирование) представляет собой формат для представления аудио, изображений, текста и т. Д. В байтах.

Это преобразование возможно с помощью encode (). В качестве аргумента используется техника кодирования. По умолчанию мы используем технику «UTF-8».

>>> # Python Code to demonstrate string encoding 
>>> 
>>> # Initialising a String 
>>> x = 'TutorialsPoint' 
>>> 
>>> #Initialising a byte object 
>>> y = b'TutorialsPoint'
>>> 
>>> # Using encode() to encode the String >>> # encoded version of x is stored in z using ASCII mapping 
>>> z = x.encode('ASCII') 
>>> 
>>> # Check if x is converted to bytes or not 
>>> 
>>> if(z==y): 
   print('Encoding Successful!') 
else: 
   print('Encoding Unsuccessful!') 
Encoding Successful!

Преобразование байтов в текст

Преобразование байтов в текст называется декодированием. Это реализуется через decode (). Мы можем преобразовать байтовую строку в символьную строку, если мы знаем, какая кодировка используется для ее кодирования.

Таким образом, кодирование и декодирование являются обратными процессами.

>>> 
>>> # Python code to demonstrate Byte Decoding 
>>> 
>>> #Initialise a String 
>>> x = 'TutorialsPoint' 
>>> 
>>> #Initialising a byte object 
>>> y = b'TutorialsPoint' 
>>> 
>>> #using decode() to decode the Byte object 
>>> # decoded version of y is stored in z using ASCII mapping 
>>> z = y.decode('ASCII')
>>> #Check if y is converted to String or not 
>>> if (z == x): 
   print('Decoding Successful!') 
else: 
   print('Decoding Unsuccessful!') Decoding Successful! 
>>>

Файловый ввод / вывод

Операционные системы представляют файлы в виде последовательности байтов, а не текста.

Файл является именованным местоположением на диске для хранения связанной информации. Он используется для постоянного хранения данных на вашем диске.

В Python файловая операция происходит в следующем порядке.

  • Открыть файл
  • Чтение или запись в файл (операция). Открытие файла
  • Закройте файл.

Python оборачивает входящий (или исходящий) поток байтов соответствующими вызовами декодирования (или кодирования), чтобы мы могли иметь дело непосредственно с объектами str.

Открытие файла

В Python есть встроенная функция open () для открытия файла. Это создаст объект файла, также называемый дескриптором, поскольку он используется для чтения или изменения файла соответственно.

>>> f = open(r'c:\users\rajesh\Desktop\index.webm','rb')
>>> f
<_io.BufferedReader name='c:\\users\\rajesh\\Desktop\\index.webm'>
>>> f.mode
'rb'
>>> f.name
'c:\\users\\rajesh\\Desktop\\index.webm'

Для чтения текста из файла нам нужно только передать имя файла в функцию. Файл будет открыт для чтения, а байты будут преобразованы в текст с использованием стандартной кодировки платформы.