Поскольку вы знаете точный номер строки, это довольно просто - даже не имеет значения, является ли файл YAML, если вы точно знаете, что вам нужно его заменить.
Я предполагаю, что здесьчто все файлы, которым нужно изменить свои строки, находятся в одном каталоге, без других файлов YAML.Если это не так, то, конечно, программа потребует тонкой настройки.
import os
line_number = 47 # Whatever the line number you're trying to replace is
replacement_line = "Whatever string you're replacing this line with"
items = os.listdir(".") # Gets all the files & directories in the folder containing the script
for file_name in items: # For each of these files and directories,
if file_name.lower().endswith(".yaml"): # check if the file is a YAML. If it is:
with open(file_name, "w") as file: # Safely open the file
data = file.read() # Read its contents
data[line_number] = replacement_line # Replace the line
file.write(data) # And save the file
Обратите внимание, что если ваши файлы имеют формат .yml, а не .yaml, вам придется изменить это в коде.,Кроме того, если ваши файлы слишком велики, это может вызвать проблемы при загрузке каждого файла в память.
Если это не работает для вас, то в Интернете есть и другие решения, включая переполнение стека!