Разное

Python string replace: Python String replace() Method — Tutorialspoint

Содержание

Python replace для строки — Замена сразу нескольких значений

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

Python даёт программисту много инструментов для работы со строками, в том числе и метод replace().

Что делает метод

Слово replace имеет дословный перевод “заменять”, так что название метода точно описывает его назначение. С помощью replace можно заменить часть строки или её всю на другую строку.

Синтаксис метода выглядит так:

str.replace(old_str, new_str[, count])

В качестве аргументов в метод передаются:

  • old_str – часть исходной строки, которую необходимо заменить.
  • new_str – строка, на которую заменяют исходную строку (old_str).
  • count – определяет количество вхождений подстроки, которые необходимо заменить.

Здесь count – не обязательный параметр. Если его не указывать, то будут заменены все вхождения подстрок на новые.

В качестве str используется исходная строка (тип данных string).

Таким образом, метод replace позволяет гибко изменять только необходимые части строки str, работа метода продемонстрирована в следующих примерах:

my_str = "one dog, one cat, one rabbit"

#Заменяем все вхождения "one" в строке
a = my_str.replace("one", "two")
print(a) # Выведет two dog, two cat, two rabbit

#Заменяем первое вхождение "one" в строке
b = my_str.replace("one", "two", 1)
print(b) # Выведет two dog, one cat, one rabbit

#Заменяем первые два вхождения "one" в строке
c = my_str.replace("one", "two", 2)
print(c) # Выведет two dog, two cat, one rabbit

Важно помнить, что строки — это неизменяемые последовательности. Поэтому метод replace не заменяет отдельные символы в целевой строке, вместо этого он создает её копию с нужными изменениями. Это важная особенность языка Python, которую должен знать каждый программист.

Это не очевидно, с помощью метода replace можно заменить сразу несколько значений, например все элементы списка:

str_list = ["кот", "собака", "кот собака", "кот кот"]

# в новый список записываем элементы начального списка, измененные
# с помощью replace
result_list = [elem.replace("кот", "кошка", 1) for elem in str_list]
print(result_list) # Выведет ['кошка', 'собака', 'кошка собака', 'кошка кот']

Применение replace для замены нескольких значений

С помощью словаря

Предыдущий пример позволяет заменить несколько элементов, однако все они имеют одно и то же значение “кот”. Если необходимо заменить несколько разных значений, например “кот” на “кошка” и “кошка” на “собака”, то необходимо реализовать чуть более сложную программу с использованием словарей:

# Функция для замены нескольких значений
def multiple_replace(target_str, replace_values):
    # получаем заменяемое: подставляемое из словаря в цикле
    for i, j in replace_values. items():
        # меняем все target_str на подставляемое
        target_str = target_str.replace(i, j)
    return target_str

# создаем словарь со значениями и строку, которую будет изменять
replace_values = {"кот": "кошка", "кошка": "собака"}
my_str = "У меня есть кот и кошка"

# изменяем и печатаем строку
my_str = multiple_replace(my_str, replace_values)
print(my_str)

Здесь replace используется в функции, аргументы которой исходная строка и словарь со значениями для замены.

У этого варианта программы есть один существенный недостаток, программист не может быть уверен в том, какой результат он получит. Дело в том, что словари — это последовательности без определенного порядка, поэтому рассматриваемый пример программы может привести к двум разным результатам в зависимости от того, как интерпретатор расположит элементы словаря:

  • У меня есть собака и собака
  • У меня есть кошка и собака

В Python версии 3. 6 и более поздних порядок перебора ключей будет такой же, как и при котором они созданы. В более ранних версиях Python порядок может отличаться.

Для решения этой проблемы можно заменить обычный словарь на упорядоченный словарь OrderedDict, который нужно импортировать следующей командой:

from collections import OrderedDict

Помимо импорта в программе нужно поменять буквально одну строку:

replace_values = {"кот": "кошка", "кошка": "собака"}

Изменить её надо на:

replace_values = OrderedDict([("кот", "кошка"), ("кошка", "собака")])

В этом случае, результат будет “У меня есть собака и собака”, если же поменять местами элементы упорядоченного словаря при инициализации следующим образом: OrderedDict([("кошка", "собака"), ("кот", "кошка")]), то результат будет “У меня есть кошка и собака”.

Вариант со списками

Замену нескольких значений можно реализовать и по-другому, для этого используем списки:

my_str = "У меня есть кот и кошка"
# в цикле передаем список (заменяемое, подставляемое) в метод replace
for x, y in ("кот", "кошка"), ("кошка", "собака"):
    my_str = my_str. replace(x, y)
print(my_str) # Выведет "У меня есть собака и собака"

В данном примере цикл for делает 2 итерации:

  1. Подставляет в метод replace значения из первого списка: replace(“кот”, “кошка”), в результате чего получается строка “У меня есть кошка и кошка”.
  2. Подставляет в метод replace значения из второго списка: replace(“кошка”, “собака”), получается строка “У меня есть собака и собака”.

Другие типы Python и метод replace

Метод replace есть не только у строк, с его помощью программист может изменять последовательности байт, время и дату.

Синтаксис метода для последовательности байт ничем не отличается от синтаксиса для строк, для дат и времени в аргументах метода replace нужно писать идентификатор изменяемой цели, например:

from datetime import date
t_date = date(2020, 4, 23)
t_date = t_date.replace(day = 11)
print(t_date) # Выведет 2020-04-11

Для времени метод replace применяется аналогично.

Функция replace() в Python — примеры замены строки и значений

Python имеет встроенную функцию string.replace() для замены строки другой строкой. Функция string.replace() function принимает заменяемую строку и новую строку, которой вы хотите заменить старую.

Синтаксис:

string.replace("old string","new string", count)
  • old string : строка, которую нужно заменить.
  • new string : новая часть строки, которую вы хотите поместить в позицию старой строки.
  • count : количество раз.

Пример 1: Замена старой строки новой строкой, переданной функции

inp_str = "Python with pythononline"
res = inp_str.replace("pythononline", "AP")
print("Original String:",inp_str)
print("Replaced String:",res)

В приведенном выше фрагменте кода мы заменили строку «pythononline» на «AP».

Выход:

Original String: Python with pythononline
Replaced String: Python with AP

Замена указанного количества экземпляров

Теперь давайте используем параметр count, чтобы указать количество экземпляров строки, которую мы хотим заменить.

Пример 2: Использование count в качестве параметра функции replace()

inp_str = "abcdaaseweraa"
res = inp_str.replace("a", "x",2)
print("Original String:",inp_str)
print("Replaced String:",res)

В этом примере мы передали входную строку как — ‘abcdaaseweraa’. Кроме того, мы передали символ «а» исходной строки, который нужно заменить символом «x».

Здесь счетчик установлен на 2, т.е. только первые два встреченных символа «a» будут заменены на символ «x». Остальные встретившиеся буквы «а» не будут добавлены позже и останутся такими же.

Выход:

Original String: abcdaaseweraa
Replaced String: xbcdxaseweraa

Функция replace() с модулем Pandas

Функцию replace() также можно использовать для замены некоторой строки, присутствующей в csv или текстовом файле.

Модуль Python Pandas полезен при работе с наборами данных. Функция pandas.str.replace() function используется для замены строки другой строкой в переменной или столбце данных.

Синтаксис:

dataframe.str.replace('old string', 'new string')

В следующем примере мы будем использовать следующий набор данных:

Пример:

import pandas
df = pandas.read_csv("C:/IMDB_data.csv", sep=",",encoding='iso-8859-1')
df['Language']=df['Language'].str.replace("English","Hindi")

В приведенном выше фрагменте кода pandas.read_csv() function используется для импорта и загрузки набора данных.

Как видно из набора данных выше, мы выбрали столбец «Язык», чтобы заменить «английский» на «хинди».

Выход:

Замена вхождения подстроки в строке Python

Замена всех или n вхождений подстроки в заданной строке — довольно распространенная проблема манипуляций со строками и обработки текста в целом.  К счастью, большинство этих задач упрощается в Python благодаря огромному набору встроенных функций, включая эту.

Допустим, у нас есть строка, содержащая следующее предложение:

The brown-eyed man drives a brown car.

Наша цель — заменить слово "brown" на "blue":

The blue-eyed man drives a blue car.

В этой статье мы будем использовать функцию replace(), а также функции sub() и subn() с шаблонами для замены всех вхождений подстроки из строки.

replace()

Самый простой способ сделать это — использовать встроенную функцию — replace():

string.replace(oldStr, newStr, count)

Первые два параметра являются обязательными, а третий — необязательным. oldStr — это подстрока, которую мы хотим заменить на newStr. Стоит отметить, что функция возвращает новую строку с выполненным преобразованием, не затрагивая исходную.

Давайте попробуем:

string_a = "The brown-eyed man drives a brown car."
string_b = string_a.replace("brown", "blue")
print(string_a)
print(string_b)

Мы выполнили операцию над string_a, упаковали результат в string_b и распечатали их оба.

Этот код приводит к:

The brown-eyed man drives a brown car. 
The blue-eyed man drives a blue car.

Опять же, строка в памяти, на которую указывает string_a, остается неизменной. Строки в Python неизменяемы, что просто означает, что вы не можете изменить строку. Однако вы можете повторно присвоить ссылочной переменной новое значение.

Чтобы, казалось бы, выполнить эту операцию на месте, мы можем просто переназначить string_a после операции:

string_a = string_a.replace("brown", "blue")
print(string_a)

Здесь новая строка, созданная методом replace(), присваивается переменной string_a.

Заменить n вхождений подстроки

А что, если мы не хотим изменять все вхождения подстроки? Что, если мы хотим заменить первые n?

Вот тут и появляется третий параметр функции replace(). Он представляет количество подстрок, которые будут заменены. Следующий код заменяет только первое вхождение слова "brown" на "blue":

string_a = "The brown-eyed man drives a brown car."
string_a = string_a.replace("brown", "blue", 1)
print(string_a)

И в консоли у нас будет:

The blue-eyed man drives a brown car.

По умолчанию третий параметр настроен на изменение всех вхождений.

Вхождения подстроки в регулярных выражениях

Чтобы еще больше обострить проблему, предположим, что мы хотим не только заменить все вхождения определенной подстроки, но и заменить все подстроки, соответствующие определенному шаблону. Даже это можно сделать с помощью однострочного кода, используя регулярные выражения и модуль стандартной библиотеки re.

Регулярные выражения — сложная тема с широким спектром использования в информатике, поэтому мы не будем вдаваться в подробности в этой статье.

По сути, регулярное выражение определяет шаблон. Например, предположим, что у нас есть текст о людях, владеющих кошками и собаками, и мы хотим заменить оба термина словом "pet". Во-первых, нам нужно определить шаблон, который соответствует обоим терминам, например — (cat|dog).

Использование функции sub()

Разобравшись с шаблоном, мы собираемся использовать функцию re.sub() со следующим синтаксисом:

re.sub(pattern, repl, string, count, flags)

Первый аргумент — это шаблон, который мы ищем (строка или объект Pattern), repl это то, что мы собираемся вставить (может быть строкой или функцией; если это строка, обрабатываются любые escape-символы в ней обратной косой чертой) и string это строка, в которой мы ищем.

Необязательными аргументами являются count и flags, которые указывают, сколько вхождений необходимо заменить, и флаги, используемые для обработки регулярного выражения, соответственно.

Если шаблон не соответствует ни одной подстроке, исходная строка будет возвращена без изменений:

import re
string_a = re.sub(r'(cat|dog)', 'pet', "Mark owns a dog and Mary owns a cat.")
print(string_a)

В консоле распечатается:

Mark owns a pet and Mary owns a pet.
Сопоставление с шаблоном без учета регистра

Например, чтобы выполнить сопоставление с шаблоном без учета регистра, мы установим для параметра flag значение re.IGNORECASE:

import re
string_a = re.sub(r'(cats|dogs)', "Pets", "DoGs are a man's best friend", flags=re.IGNORECASE)
print(string_a)

Теперь любая комбинация регистра "dogs" также будет включена. При сопоставлении шаблона с несколькими строками, чтобы избежать его копирования в нескольких местах, мы можем определить объект Pattern. У них также есть функция sub() с синтаксисом:

Pattern.sub(repl, string, count)
Использование объектов шаблона

Давайте определим Pattern для кошек и собак и проверим пару предложений:

import re
pattern = re.compile(r'(Cats|Dogs)')
string_a = pattern.sub("Pets", "Dogs are a man's best friend.")
string_b = pattern.sub("Animals", "Cats enjoy sleeping.")
print(string_a)
print(string_b)

Что дает нам результат:

Pets are a man's best friend.
Animals enjoy sleeping.
Функция subn()

Также есть метод subn() с синтаксисом:

re.subn(pattern, repl, string, count, flags)

Функция subn() возвращает кортеж со строкой и числом совпадений в строке поиска:

import re
string_a = re.subn(r'(cats|dogs)', 'Pets', "DoGs are a mans best friend", flags=re.IGNORECASE)
print(string_a)

Кортеж выглядит так:

('Pets are a mans best friend', 1)

Объект Pattern содержит аналогичную функцию subn():

Pattern.subn(repl, string, count)

И он используется очень похожим образом:

import re
pattern = re.compile(r'(Cats|Dogs)')
string_a = pattern.subn("Pets", "Dogs are a man's best friend.")
string_b = pattern.subn("Animals", "Cats enjoy sleeping.")
print(string_a)
print(string_b)

Это приводит к:

("Pets are a man's best friend.", 1)
('Animals enjoy sleeping.', 1)

Вывод

Python предлагает простые функции для обработки строк. Самый простой способ заменить все вхождения данной подстроки в строке — использовать функцию replace().

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

Python String Replace | Примеры и функции Python String Replace

Введение в Python String Replace

Иногда мы сталкиваемся с проблемами, требующими минимальных, но эффективных решений. Скажите, хотите ли вы заменить определенные вхождения определенного текста во фразе другим фрагментом текста. В случае с Python функция replace () может сработать для вас как шарм. replace () — это встроенная функция в Python, которая возвращает копию строки со всеми вхождениями «строки», которую мы хотим заменить указанной.

Синтаксис:

str.replace (old_string, new_string, count)

функции replace () можно передать несколько аргументов, перечисленных ниже:

  • old_string: Это подстрока, которую мы хотим заменить
  • new_string: Это подстрока, которой мы хотим заменить old_string на
  • count: Это относится к количеству вхождений old_string, которое мы хотим заменить на new_string

Примечание: Здесь count — необязательный аргумент.Если вы не передадите третий аргумент, который подсчитывается функцией replace (). Тогда в этом случае все вхождения old_string будут заменены на new_string в str

В этом случае синтаксис будет:

str.replace (old_string, new_string)

Примеры и функции Python String Replace

Давайте рассмотрим пример, чтобы понять, как это работает:

Пример # 1

Код:

# Программа Python3 для демонстрации
# использования функции replace ()
str = "Пойдем в одно место, откуда мы можем перейти в другое.Но куда именно мы хотим пойти?
# Печатает строку, заменяя go на GO
print (str.replace ("go", "#GO"))
# Печатает строку, заменяя только 2 вхождения go
print (str.replace ("go", "#GO", 2))

Выход:

Примечание: В первой записи, поскольку мы не передали необязательный счетчик аргументов, в котором указывается, сколько вхождений подстроки «go» следует заменить на «#GO», тогда все вхождения будут заменены.И во второй записи: Здесь только первые два вхождения «go» заменяются на «#GO», поскольку мы явно указали счет как 2 во втором операторе печати

.

Так работает функция replace () в Python

Пример # 2

Код:

Как заменить один или несколько символов в строке? — thispointer.com

В этой статье мы обсудим, как заменить один или несколько символов в строке в Python.

Python предоставляет функцию str.replace (), т.е.

 str.replace (old, new, count) 

Он возвращает новый строковый объект, который является копией существующей строки с замененным содержимым. Также,

  • Если count не предоставлен, он вернет строку со всеми вхождениями «old», замененными на «new».
  • Если передан параметр count, он вернет строку, в которой первые «count» вхождения «старой» строки заменены на «новую» строку.

Разберемся на примерах,

Заменить все вхождения данного символа / строки в строку

Предположим, у нас есть строка i.е.

 mainStr = "Здравствуйте, это образец строки"
 

Теперь давайте заменим все вхождения «s» на «X», т.е.

 "" "
Заменить все вхождения данного символа или строки в основной строке
'' '
otherStr = mainStr.replace ('s', 'X')
 

Содержимое otherStr выглядит следующим образом:

 Hello, ThiX iX a Xample Xtring 

Поскольку строки неизменяемы в Python, мы не можем изменить их содержимое. Поэтому функции-члены, такие как replace (), возвращают новую строку.
Поскольку мы не предоставили параметр count в функции replace (). Таким образом, он заменит все вхождения «s» на «X». Но что, если мы хотим заменить только несколько первых вхождений вместо всех? Посмотрим, как это сделать,

Заменить первые n вхождений данного символа / подстроки в строку

Предположим, у нас есть строка, например

 mainStr = "Здравствуйте, это образец строки" 

Теперь давайте заменим первые 2 вхождения «s» на «XXXS», т.е.

 ""
Заменить первые 2 вхождения данного символа или строки в основной строке
'' '
otherStr = mainStr.replace ('s', 'XXXS', 2)
 

Содержимое otherStr выглядит следующим образом:

 Hello, ThiXXXS iXXXS a sample string 

Поскольку мы передали параметр count как 2, поэтому в возвращаемой копии будут заменены только первые 2 вхождения «s».

Заменить несколько символов / строк в строке

str.replace () функция может заменять вхождения только одной заданной подстроки. Но что, если мы хотим заменить несколько подстрок в данной строке?

Предположим, у нас есть строка i.е.

 mainStr = "Здравствуйте, это образец строки" 

Теперь, как заменить все вхождения этих трех символов «s», «l», «a» на эту строку «AA»?
Давайте создадим для этого новую функцию вместо replace (), например,

 '' '
Замените набор из нескольких подстрок новой строкой в ​​основной строке.
'' '
def replaceMultiple (mainString, toBeReplaces, newString):
    # Перебираем заменяемые строки
    для элемента в toBeReplaces:
        # Проверяем, находится ли строка в основной строке
        если elem в mainString:
            # Заменить строку
            mainString = mainString.replace (elem, newString)
    
    вернуть mainString 

Он заменит все вхождения строк в List toBeReplaces на newString в основном заданном списке mainString .
Давайте посмотрим, как заменить вхождения [‘s’, ‘l’, ‘a’] на «AA», т.е.

 '' '
Заменить несколько символов / строк из строки
'' '
# Заменить все вхождения строки в списке на AA в основном списке
otherStr = replaceMultiple (mainStr, ['s', 'l', 'a'], «AA»)
 

Содержимое otherStr выглядит следующим образом:

 HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring 

Полный пример выглядит следующим образом:

 ''
Замените набор из нескольких подстрок новой строкой в ​​основной строке.'' '
def replaceMultiple (mainString, toBeReplaces, newString):
    # Перебираем заменяемые строки
    для элемента в toBeReplaces:
        # Проверяем, находится ли строка в основной строке
        если elem в mainString:
            # Заменить строку
            mainString = mainString.replace (elem, newString)
    
    вернуть mainString

def main ():
    
    mainStr = "Здравствуйте, это образец строки"

    '' '
    Заменить все вхождения данного символа или строки в основной строке
    '' '
    otherStr = mainStr.replace ('s', 'X')
     
    print ("Строка с замененным содержимым:", otherStr)
    
    '' '
    Заменить первые 2 вхождения данного символа или строки в основной строке
    '' '
    otherStr = mainStr.replace ('s', 'XXXS', 2)
     
    печать (otherStr)
    
    
    '' '
    Заменить несколько символов / строк из строки
    '' '
    # Заменить все вхождения строки в списке на AA в основном списке
    otherStr = replaceMultiple (mainStr, ['s', 'l', 'a'], «AA»)
    
    печать (otherStr)
           
если __name__ == '__main__':
    основной()

 

Вывод:

 Строка с замененным содержимым: Здравствуйте, ThiX iX a Xample Xtring
Здравствуйте, ThiXXXS iXXXS образец строки
HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring
 

Python String replace ()

Синтаксис replace () :

ул.replace (old, new [, count]) 

параметры replace ()

Метод replace () может принимать максимум 3 параметра:

  • old — старая подстрока, которую нужно заменить
  • new — новая подстрока, которая заменит старую подстроку
  • count (необязательно) — количество раз, которое вы хотите заменить старую подстроку на новую подстроку

Примечание : Если count не указан, метод replace () заменяет все вхождения старой подстроки на новую подстроку .


Возвращаемое значение из replace ()

Метод replace () возвращает копию строки, в которой старая подстрока заменяется новой подстрокой . Исходная строка не изменилась.

Если старая подстрока не найдена, возвращается копия исходной строки.


Пример 1: Использование replace ()

  песня = 'холодное, холодное сердце'

# заменить слово "холодно" на "больно"
печать (песня.replace ('холодно', 'больно'))

song = 'Пусть будет, пусть будет, пусть будет, пусть будет'

# заменяем только два вхождения 'let'
print (song.replace ('давай', «не позволяй», 2))  

Выход

  больно, больно сердце
Пусть будет, не дай, не дай, пусть будет  

Дополнительные примеры String replace ()

  песня = 'холодное, холодное сердце'
replace_song = song.replace ('о', 'е')

# Исходная строка не изменилась
print ('Исходная строка:', песня)

print ('Замененная строка:', replace_song)

song = 'пусть будет, пусть будет, пусть будет'

# заменяется максимум 0 подстрок
# возвращает копию исходной строки
печать (песня.replace ('let', 'so', 0))  

Выход

  Оригинальная струна: холодное, холодное сердце
Замененная строка: celd, celd heart
пусть будет, пусть будет, пусть будет  

Строка

— стандартные строковые операции — документация Python 3.8.6

Исходный код: Lib / string.py


Строковые константы

В этом модуле определены следующие константы:

строка. ascii_letters

Объединение ascii_lowercase и ascii_uppercase
константы, описанные ниже.Это значение не зависит от языкового стандарта.

строка. ascii_lowercase

Строчные буквы 'abcdefghijklmnopqrstuvwxyz' . Это значение не
зависит от локали и не изменится.

строка. ascii_uppercase

Заглавные буквы 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . Это значение не
зависит от локали и не изменится.

строка. цифр

Строка '0123456789' .

строка. шестнадцатеричные цифры

Строка '0123456789abcdefABCDEF' .

строка. восьмеричные цифры

Строка '01234567' .

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

Строка символов ASCII, считающихся знаками пунктуации
в локали C : ! "# $% & '() * +, -._` {|} ~ .

строка. для печати

Строка символов ASCII, которые считаются печатаемыми. Это
комбинация цифр , ascii_letters , знаков препинания ,
и пробел .

строка. пустое пространство

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

Пользовательское форматирование строки

Встроенный строковый класс предоставляет возможность выполнять сложные переменные.
подстановки и форматирование значений с помощью метода format () , описанного в
ПЭП 3101 . Класс Formatter в модуле string позволяет
вы можете создавать и настраивать свои собственные варианты форматирования строк, используя те же
реализация как встроенный метод format () .

класс струна. Форматтер

Класс Formatter имеет следующие общедоступные методы:

формат ( формат_строка , /, * args , ** kwargs )

Основной метод API. Требуется строка формата и
произвольный набор позиционных и ключевых аргументов.
Это просто оболочка, которая вызывает vformat () .

vformat ( format_string , args , kwargs )

Эта функция выполняет собственно работу по форматированию.Он выставлен как
отдельная функция для случаев, когда вы хотите передать предопределенный
словарь аргументов, а не распаковывать и переупаковывать
словарь как отдельные аргументы с использованием * args и ** kwargs
синтаксис. vformat () выполняет работу по разбиению строки формата
в символьные данные и поля замены. Он вызывает различные
методы, описанные ниже.

Кроме того, Formatter определяет ряд методов, которые
предполагается заменить подклассами:

синтаксический анализ ( format_string )

Перебирать строку format_string и возвращать итерацию кортежей
( литеральный_текст , имя_поля , спецификация_формата , преобразование ).Это используется
на vformat () , чтобы разбить строку на буквальный текст или
поля замены.

Значения в кортеже концептуально представляют собой диапазон буквального текста.
за которым следует одно поле замены. Если нет буквального текста
(что может произойти, если два поля замены встречаются последовательно), тогда
literal_text будет строкой нулевой длины. Если нет замены
field, затем значения field_name , format_spec и преобразование
будет Нет .

get_field ( имя_поля , args , kwargs )

Учитывая field_name , возвращенное функцией parse () (см. Выше), преобразуйте его в
форматируемый объект. Возвращает кортеж (obj, used_key). По умолчанию
версия принимает строки формы, определенной в PEP 3101 , например
«0 [имя]» или «label.title». аргументы и kwargs переданы в

строка — Стандартные строковые операции — Python 3.7.9 документация

Исходный код: Lib / string.py


Строковые константы

В этом модуле определены следующие константы:

строка. ascii_letters

Объединение ascii_lowercase и ascii_uppercase
константы, описанные ниже. Это значение не зависит от языкового стандарта.

строка. ascii_lowercase

Строчные буквы 'abcdefghijklmnopqrstuvwxyz' .Это значение не
зависит от локали и не изменится.

строка. ascii_uppercase

Заглавные буквы 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . Это значение не
зависит от локали и не изменится.

строка. цифр

Строка '0123456789' .

строка. шестнадцатеричные цифры

Строка '0123456789abcdefABCDEF' .

строка. восьмеричные цифры

Строка '01234567' .

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

Строка символов ASCII, считающихся знаками пунктуации
в локали C .

строка. для печати

Строка символов ASCII, которые считаются печатаемыми.Это
комбинация цифр , ascii_letters , знаков препинания ,
и пробел .

строка. пустое пространство

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

Пользовательское форматирование строки

Встроенный строковый класс предоставляет возможность выполнять сложные переменные.
подстановки и форматирование значений с помощью метода format () , описанного в
ПЭП 3101 .Класс Formatter в модуле string позволяет
вы можете создавать и настраивать свои собственные варианты форматирования строк, используя те же
реализация как встроенный метод format () .

класс струна. Форматтер

Класс Formatter имеет следующие общедоступные методы:

формат ( формат_строка , * аргументы , ** kwargs )

Основной метод API.Требуется строка формата и
произвольный набор позиционных и ключевых аргументов.
Это просто оболочка, которая вызывает vformat () .

vformat ( format_string , args , kwargs )

Эта функция выполняет собственно работу по форматированию. Он выставлен как
отдельная функция для случаев, когда вы хотите передать предопределенный
словарь аргументов, а не распаковывать и переупаковывать
словарь как отдельные аргументы с использованием * args и ** kwargs
синтаксис. vformat () выполняет работу по разбиению строки формата
в символьные данные и поля замены. Он вызывает различные
методы, описанные ниже.

Кроме того, Formatter определяет ряд методов, которые
предполагается заменить подклассами:

синтаксический анализ ( format_string )

Перебирать строку format_string и возвращать итерацию кортежей
( литеральный_текст , имя_поля , спецификация_формата , преобразование ).Это используется
на vformat () , чтобы разбить строку на буквальный текст или
поля замены.

Значения в кортеже концептуально представляют собой диапазон буквального текста.
за которым следует одно поле замены. Если нет буквального текста
(что может произойти, если два поля замены встречаются последовательно), тогда
literal_text будет строкой нулевой длины. Если нет замены
field, затем значения field_name , format_spec и преобразование
будет Нет .

get_field ( имя_поля , args , kwargs )

Учитывая field_name , возвращенное функцией parse () (см. Выше), преобразуйте его в
форматируемый объект. Возвращает кортеж (obj, used_key). По умолчанию
версия принимает строки формы, определенной в PEP 3101 , например
«0 [имя]» или «label.title». аргументы и kwargs переданы в

Python — как заменить строку в файле?

Python — заменить строку в файле

Чтобы заменить строку в файле с помощью Python, выполните следующие действия:

  1. Откройте входной файл в режиме чтения и обработайте его в текстовом режиме.
  2. Открыть выходной файл в режиме записи и обработать его в текстовом режиме.
  3. Для каждой строки, прочитанной из входного файла, заменить строку и записать в выходной файл.
  4. Закройте файлы ввода и вывода.

Пример 1. Замена строки в файле

В следующем примере мы заменим строку pyton на python в файле data.txt и запишем результат в out.txt .

Программа Python

  #input file
fin = open ("данные.txt "," rt ")
# выходной файл для записи результата в
fout = open ("out.txt", "wt")
# для каждой строки во входном файле
для линии в плавнике:
#read заменить строку и записать в выходной файл
fout.write (line.replace ('питон', 'питон'))
# закрыть файлы ввода и вывода
fin.close ()
fout.close ()  

Что мы здесь сделали?

  1. Откройте data.txt в режиме чтения текста rt и получите ссылку на fin .
  2. Откройте out.txt в режиме записи текста wt и получите ссылку на fout .
  3. для строки в ребре : для каждой строки в fin то есть data.txt , line.replace () : заменяет строку pyton на python и fout.write : записывает в out.txt .
  4. fin.close () : закрывает файл, на который ссылается fin , fout.close () : закрывает файл, на который ссылается fout .

Входной файл

  Добро пожаловать на www.pytonexamples.org. Здесь вы найдете программы на Python для всех общих случаев использования.  

Выходной файл

  Добро пожаловать на сайт www.pythonexamples.org. Здесь вы найдете программы на Python для всех общих случаев использования.  

Строка pyton в файле заменяется строкой python .

Пример 2: Замена строки в том же файле

В следующем примере мы заменим строку pyton на python в данных .txt и перезапишите файл data.txt с замененным текстом.

Python Prgoram

  # читать входной файл
fin = open ("data.txt", "rt")
# считываем содержимое файла в строку
data = fin.read ()
# заменить все вхождения требуемой строки
data = data.replace ('питон', 'питон')
# закрыть входной файл
fin.close ()
# открыть входной файл в режиме записи
fin = open ("data.txt", "wt")
# перезаписываем входной файл полученными данными
fin.write (данные)
# закрыть файл
плавник.близко()
  

Что мы здесь сделали?

  1. Открыть файл data.txt в режиме чтения текста rt .
  2. fin.read () считывает весь текст из data.txt в переменную data .
  3. data.replace () заменяет все вхождения pyton на python во всем тексте.
  4. fin.close () закрывает входной файл data.txt .
  5. В последних трех строках мы открываем данные .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *