Python orienté objet - Fichiers et chaînes

Cordes

Les chaînes sont les types de données les plus populaires utilisés dans tous les langages de programmation. Pourquoi? Parce que nous comprenons mieux le texte que les nombres, nous utilisons donc du texte et des mots pour écrire et parler, de même que dans la programmation, nous utilisons des chaînes. Dans la chaîne, nous analysons du texte, analysons la sémantique du texte et faisons de l'exploration de données - et toutes ces données sont du texte consommé par l'homme. La chaîne en Python est immuable.

Manipulation de chaînes

En Python, la chaîne peut être marquée de plusieurs façons, en utilisant un guillemet simple ('), un guillemet double (") ou même un guillemet triple (' '') dans le cas de chaînes multilignes.

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

La manipulation de chaînes est très utile et très largement utilisée dans toutes les langues. Souvent, les programmeurs doivent décomposer les chaînes et les examiner de près.

Les chaînes peuvent être itérées (caractère par caractère), découpées ou concaténées. La syntaxe est la même que pour les listes.

La classe str a de nombreuses méthodes pour faciliter la manipulation des chaînes. Les commandes dir et help fournissent des conseils dans l'interpréteur Python sur leur utilisation.

Voici quelques-unes des méthodes de chaîne couramment utilisées que nous utilisons.

N ° Sr. Méthode et description
1

isalpha()

Vérifie si tous les caractères sont des alphabets

2

isdigit()

Vérifie les caractères numériques

3

isdecimal()

Vérifie les caractères décimaux

4

isnumeric()

vérifie les caractères numériques

5

find()

Renvoie l'indice le plus élevé des sous-chaînes

6

istitle()

Vérifie les chaînes titrées

sept

join()

Renvoie une chaîne concaténée

8

lower()

renvoie une chaîne en minuscule

9

upper()

renvoie une chaîne en majuscules

dix

partion()

Renvoie un tuple

11

bytearray()

Renvoie un tableau de taille d'octet donnée

12

enumerate()

Renvoie un objet énumérer

13

isprintable()

Vérifie le caractère imprimable

Essayons d'exécuter quelques méthodes de chaîne,

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

Formatage de chaîne

En Python 3.x, le formatage des chaînes a changé, il est désormais plus logique et plus flexible. Le formatage peut être effectué en utilisant la méthode format () ou le signe% (ancien style) dans la chaîne de format.

La chaîne peut contenir du texte littéral ou des champs de remplacement délimités par des accolades {} et chaque champ de remplacement peut contenir soit l'index numérique d'un argument de position, soit le nom d'un argument de mot-clé.

syntaxe

str.format(*args, **kwargs)

Formatage de base

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

L'exemple ci-dessous permet de réorganiser l'ordre d'affichage sans changer les arguments.

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

Remplissage et alignement des cordes

Une valeur peut être complétée à une longueur spécifique.

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

Les chaînes sont Unicode

Chaînes en tant que collections de caractères Unicode immuables. Les chaînes Unicode offrent la possibilité de créer des logiciels ou des programmes qui fonctionnent partout car les chaînes Unicode peuvent représenter n'importe quel caractère possible, pas seulement les caractères ASCII.

De nombreuses opérations d'E / S ne savent comment traiter que les octets, même si l'objet octets fait référence à des données textuelles. Il est donc très important de savoir comment échanger entre les octets et Unicode.

Conversion de texte en octets

La conversion d'une chaîne en objet octet est appelée encodage. Il existe de nombreuses formes de codage, les plus courantes sont: PNG; JPEG, MP3, WAV, ASCII, UTF-8 etc. Ce (encodage) est également un format pour représenter l'audio, les images, le texte, etc. en octets.

Cette conversion est possible grâce à encode (). Il prend la technique de codage comme argument. Par défaut, nous utilisons la technique '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

La conversion d'octets en texte s'appelle le décodage. Ceci est implémenté via decode (). Nous pouvons convertir une chaîne d'octets en chaîne de caractères si nous savons quel encodage est utilisé pour l'encoder.

Le codage et le décodage sont donc des processus inverses.

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

Les systèmes d'exploitation représentent les fichiers sous la forme d'une séquence d'octets et non de texte.

Un fichier est un emplacement nommé sur le disque pour stocker les informations associées. Il est utilisé pour stocker en permanence des données sur votre disque.

En Python, une opération de fichier a lieu dans l'ordre suivant.

  • Ouvrir un fichier
  • Lire ou écrire sur un fichier (opération) Ouvrir un fichier
  • Fermez le fichier.

Python encapsule le flux d'octets entrant (ou sortant) avec des appels de décodage (ou d'encodage) appropriés afin que nous puissions traiter directement les objets str.

Ouvrir un fichier

Python a une fonction intégrée open () pour ouvrir un fichier. Cela générera un objet fichier, également appelé handle car il est utilisé pour lire ou modifier le fichier en conséquence.

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

Pour lire du texte à partir d'un fichier, il suffit de passer le nom du fichier dans la fonction. Le fichier sera ouvert pour la lecture et les octets seront convertis en texte en utilisant le codage par défaut de la plate-forme.