Проблема : Вы используете Python в терминале, и вы хотите заменить строку «Пример»
В текстовом файле file.txt
:
xxxxx example xxxxx
Ваша цель – выполнить следующий текст:
xxxxx replaced_example xxxxx
В частности, вы хотите открыть файл, заменить текст и переписать результат в файл – все в одной строке Code Python!
Может а. Python One-lister Достичь это?
Ответ : Да! Вы можете Сжать любой сценарий Python в одну строку. Для компьютерных наук Nerds: Одна строка кода Python – Turing Complete Отказ
Давайте посмотрим, как вы можете достичь этой задачи как Python One-Liner!
Метод 1: Печать на стандартном входе
Первый метод лучше всего наилучшего, если вы хотите заменить все вхождения «Пример»
с «Заменен_example»
и распечатайте результат к стандартному входу.
python -c "print(open('file.txt').read().replace('example','replaced_example'))"
Метод замены заменяет все вхождения первого аргумента со вторым аргументом. Это возвращает новую строку. Теперь вы можете распечатать результат к stdin или запишите его обратно в файл.
Метод 2: Печать в файл
Второй метод лучше всего наилучшего, если вы хотите заменить все вхождения «Пример»
с «Заменен_example»
и напишите результат к новому файлу "file2.txt"
Отказ
python -c "print(open('file.txt').read().replace('example','replaced_example'), file=open('file2.txt', 'w'))"
Метод замены заменяет все вхождения первого аргумента со вторым аргументом. Это возвращает новую строку. Теперь вы можете распечатать результат к файлу с помощью аргумента файла функции печати.
Способ 3: exec ()
Вы всегда можете преобразовать многопроводущую в одноинал, используя функцию EXEC (). Скажем, у вас есть следующий многослойный скрипт для замены всех вхождений строки в файл:
with open('file.txt', 'r') as f: s = f.read().replace('example', 'replaced_example') with open('file.txt', 'w') as f: f.write(s)
Сначала вы откроете файл в режиме чтения, читая все его содержимое и создавая новую строку с замененными вхождениями строки «Пример»
Отказ После этого вы открываете файл в режиме записи, чтобы перезаписать его содержимое.
Вы используете EXEC ()
Функция на односилиализацию этого сценария:
exec("with open('file.txt', 'r') as f:\n s = f.read().replace('example', 'replaced_example')\nwith open('file.txt', 'w') as f:\n f.write(s)")
Все, что вы сделали, это заменить новые строки новой линейной символом \ N
Отказ Этот результирующий скрипт – это не совсем совпадающий одноклассник, чтобы заменить все содержимое данного файла!
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.