Мне часто приходится в HTML-редакторе Joomla заменять в все символы < за которым идет не пробел, на последовательность из символов "< ", чтобы PHP-код Joomla не вырезал этот текст, поскольку он потенциально опасен, потому что конструкция с символом < может использоваться как тег. В результате возникла идея автоматизировать этот процесс с помощью скрипта Python. Почему бы не поручить эту задачу ИИ DeepSeek? В итоге получился следующий краткий, но продуктивный диалог.
Я: Пожалуйста напиши скрипт Python, который в командной строке получает имя текстового файла, слово1 и слово2. После чего скрипт заменяет в файле все вхождения слово1 на слово2 и сохраняет файл.
DeepSeek: Вот скрипт на Python, который выполняет указанные действия:
import sys
def replace_words_in_file(filename, word1, word2):
try:
# Читаем содержимое файла
with open(filename, 'r', encoding='utf-8') as file:
content = file.read()
# Заменяем все вхождения word1 на word2
modified_content = content.replace(word1, word2)
# Записываем изменённое содержимое обратно в файл
with open(filename, 'w', encoding='utf-8') as file:
file.write(modified_content)
print(f"Все вхождения '{word1}' заменены на '{word2}' в файле '{filename}'.")
except FileNotFoundError:
print(f"Ошибка: Файл '{filename}' не найден.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
# Проверяем количество аргументов командной строки
if len(sys.argv) != 4:
print("Использование: python script.py < имя_файла> < слово1> < слово2>")
sys.exit(1)
# Получаем аргументы
filename = sys.argv[1]
word1 = sys.argv[2]
word2 = sys.argv[3]
# Вызываем функцию замены
replace_words_in_file(filename, word1, word2)
Как использовать:
- Сохраните этот код в файл с расширением .py, например replace_words.py - Запустите скрипт из командной строки, передав три аргумента:
python replace_words.py имя_файла.txt слово1 слово2
Примечания:
- Скрипт учитывает кодировку UTF-8 при чтении и записи файла. - Все вхождения слово1 будут заменены на слово2, включая случаи, когда слово является частью другого слова. - Исходный файл будет изменён непосредственно (перезаписан). - Скрипт проверяет наличие файла и выводит соответствующие сообщения об ошибках.
[Как проверить, что это работает]
Я подготовил 2 копии файла с одинаковым содержимым: src-original.txt и src-changed.txt. Первая команда должна заменять все символы < на символы < с пробелом. Вторая команда должна делать обратное преобразование. В результате всех этих действий должны опять получиться 2 одинаковых файла src-original.txt и src-changed.txt.
$ python replace_words.py src-changed.txt < "< " $ python replace_words.py src-changed.txt "< " <
В результате файлы src-original.txt и src-changed.txt должны быть одинаковыми по содержимому. И оно работает!
[Ссылки]
1. Trae AI: написание программ Python с помощью ИИ. |