Python Orientado a Objetos - Arquivos e Strings

Cordas

Strings são os tipos de dados mais populares usados ​​em todas as linguagens de programação. Por quê? Porque nós entendemos texto melhor do que números, então, ao escrever e falar, usamos texto e palavras, da mesma forma que na programação usamos strings. Na string, analisamos o texto, analisamos a semântica do texto e fazemos mineração de dados - e todos esses dados são texto consumido por humanos. A string em Python é imutável.

Manipulação de Cordas

Em Python, a string pode ser marcada de várias maneiras, usando aspas simples ('), aspas duplas (“) ou mesmo aspas triplas (' '') no caso de strings de várias linhas.

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

A manipulação de strings é muito útil e amplamente utilizada em todos os idiomas. Freqüentemente, os programadores são obrigados a quebrar as strings e examiná-las de perto.

As strings podem ser iteradas (caractere por caractere), fatiadas ou concatenadas. A sintaxe é a mesma das listas.

A classe str possui vários métodos para facilitar a manipulação de strings. Os comandos dir e help fornecem orientação no interpretador Python sobre como usá-los.

Abaixo estão alguns dos métodos de string comumente usados ​​que usamos.

Sr. Não. Método e Descrição
1

isalpha()

Verifica se todos os caracteres são alfabetos

2

isdigit()

Verifica caracteres de dígitos

3

isdecimal()

Verifica caracteres decimais

4

isnumeric()

verifica os caracteres numéricos

5

find()

Retorna o índice mais alto de substrings

6

istitle()

Verifica se há strings Titlecased

7

join()

Retorna uma string concatenada

8

lower()

retorna string com caixa baixa

9

upper()

retorna string com revestimento superior

10

partion()

Retorna uma tupla

11

bytearray()

Retorna a matriz de determinado tamanho de byte

12

enumerate()

Retorna um objeto enumerado

13

isprintable()

Verifica o caractere imprimível

Vamos tentar executar alguns métodos de string,

>>> 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')
>>>

Formatação de String

No Python 3.x, a formatação de strings mudou, agora é mais lógica e mais flexível. A formatação pode ser feita usando o método format () ou o sinal% (estilo antigo) na string de formato.

A string pode conter texto literal ou campos de substituição delimitados por colchetes {} e cada campo de substituição pode conter o índice numérico de um argumento posicional ou o nome de um argumento de palavra-chave.

sintaxe

str.format(*args, **kwargs)

Formatação Básica

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

O exemplo abaixo permite reorganizar a ordem de exibição sem alterar os argumentos.

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

Preenchimento e alinhamento de cordas

Um valor pode ser preenchido para um comprimento específico.

>>> #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'

Strings são Unicode

Strings como coleções de caracteres Unicode imutáveis. As strings Unicode fornecem uma oportunidade de criar software ou programas que funcionam em qualquer lugar porque as strings Unicode podem representar qualquer caractere possível, não apenas os caracteres ASCII.

Muitas operações de E / S sabem apenas como lidar com bytes, mesmo se o objeto bytes se referir a dados textuais. Portanto, é muito importante saber como fazer o intercâmbio entre bytes e Unicode.

Converter texto em bytes

A conversão de strings em objeto de byte é denominada codificação. Existem inúmeras formas de codificação, as mais comuns são: PNG; JPEG, MP3, WAV, ASCII, UTF-8 etc. Além disso, esta (codificação) é um formato para representar áudio, imagens, texto, etc. em bytes.

Essa conversão é possível por meio de encode (). Leva a técnica de codificação como argumento. Por padrão, usamos a técnica '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!

Converting bytes to text

A conversão de bytes em texto é chamada de decodificação. Isso é implementado por meio de decode (). Podemos converter uma string de bytes em uma string de caracteres se soubermos qual codificação é usada para codificá-la.

Portanto, a codificação e a decodificação são processos inversos.

>>> 
>>> # 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! 
>>>

E / S de arquivo

Os sistemas operacionais representam arquivos como uma sequência de bytes, não texto.

Um arquivo é um local nomeado no disco para armazenar informações relacionadas. Ele é usado para armazenar dados permanentemente em seu disco.

Em Python, uma operação de arquivo ocorre na seguinte ordem.

  • Abra um arquivo
  • Ler ou gravar em um arquivo (operação). Abrir um arquivo
  • Feche o arquivo.

Python envolve o fluxo de entrada (ou saída) de bytes com chamadas de decodificação (ou codificação) apropriadas para que possamos lidar diretamente com objetos str.

Abrindo um arquivo

Python tem uma função interna open () para abrir um arquivo. Isso irá gerar um objeto de arquivo, também chamado de identificador, pois é usado para ler ou modificar o arquivo de acordo.

>>> 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'

Para ler o texto de um arquivo, só precisamos passar o nome do arquivo para a função. O arquivo será aberto para leitura e os bytes serão convertidos em texto usando a codificação padrão da plataforma.