Python

Можете помочь! Нужен код для Python, что бы он заменял определенный текст в файле

 ◄◄◄◄Python на windows без доп библиотек (чистый 3.8.7)►►►►   

◄Принцип:►
Есть некая папка в которой лежат несколько файлов
допустим (D:\Data\)
В ней лежат допустим 5 файлов и в них куча текста
(1А.json), (2А.json), (3А.json), (4А.json), (5А.json).

Надо, что-бы в файле
-(1А.json) найти текст "A" и заменить на "B",
и так много рас с другим текстом "C" на "G и тд"
И так же в (2А.json) и тд.



◄◄◄◄Примечания:►►►►
►1- Файлы с расширением ".json" в кодировке "UTF-8" и так же сохранялись
►2- Текст который надо найти и заменить находится
....( в этих кавычках "Текст A" заменить на "Текст B" )
....В этих кавычках так же будут символы " /|[{}].,\ " надеюсь ничего не поломают
....так же весь текс может быть в одну строчку 100К символов или в несколько строчек
....и среди этого искать и заменять
►3- Надо, что-бы код создавал копию файла и сохранял все изменения туда, а оригинал не трогал



Данные файлы для кода лежали-бы в определенной папке допустим (D:\Code-AD\)
Надо как то реализовать некий файл "Start.bat" который бы запускал файл с кодом,
а данный код сравнивал назв и выполнял запуск другого файла с кодом для это-го файла,
а тот выполнял замену текста
◄---С условием, что Python установлен на компе---►



1)
◄◄Пример кода некого файла "Start.bat"►►
----который лежит в любой папке и можно переносить куда угодно он будет работать
----допустим в (D:\Code-AD\Start.bat)
►1- Код который запускает файл с назв "start.py",
который находится в той же директории где и "Start.bat" (\Code-AD\start.py)



2)
◄◄Пример кода "start.py":►►
►0- Переменная для каждого кода своя (eng алфавит, цифры и их сочетания)
►1- Код который бы создавал папку с назв (Replacement) в (\Code-AD\Replacement\),
.....если ее нет, если есть, то пропускать
►2- Код который запускал бы окошко выбора файла (как при "Сохранить как" или что то подобное )
.....после выбора файла
.....допустим: в (D:\Data\1А.json) выполнялся код "►3- "
►3- код который сравнивает название в заранее вписанную в какую-то переменную
.....допустим в "1A" которой присвоено значение "1А.json"
.............или "2A" которой присвоено значение "2А.json",
.....если есть совпадения выполняется код "►4- ", если нет, то выводилось любое сообщение
►4- Код который запускает файл "1А.py" или "2А.py" с кодом авто замены текста в папке
....."AD" (\Code-AD\AD\1А.py или 2А.py)



3)
◄◄Пример кода для "1А.py" или "2А.py":►►
►0- Переменная для каждого кода своя (eng алфавит, цифры и их сочетания)
....Переменные кода (►2- ) для каждого текста
....Переменной "A" присвоено "Текст-А"
....Переменной "В" присвоено "Текст-В" и тд.
►1- Код который создает копию выбранного файла (1А.json) или (2А.json)
.....В папку (\Code-AD\Replacement\) в последующем все изменения производить уже
в нем (\Replacement\1А.json или 2А.json)
►2- Универсальный код,
.....который можно просто (скопировать) и (вставить) много рас
.....для поиска (Переменной "A") и дальнейшей заменой на (Переменную "В")
►3- код который сохранял все изменения в файле, который создал код (►1- )
►4- код который бы выводил сообщение о законченной операции,
если код "1А.py" или "2А.py" выполнился (имеется в виду один из них)
// Желательно бы за каждый код расписать чо за чо отвечает в закомментированных строчках



Ну или просто киньте примеры и распишите чо за чо отвечает, а я как-то сам попытаюсь
из примеров склепать это "нечто"
P.s. ( за Python ваще не шарю, но что-то помню как это бы выглядело )

Python:
 import os 

folder_path = "D:\\Data\\"
search_text = "A"
replace_text = "B"

for file_name in os.listdir(folder_path):
if file_name.endswith(".json"):
file_path = os.path.join(folder_path, file_name)
with open(file_path, "r", encoding="UTF-8") as file:
file_content = file.read()

new_file_content = file_content.replace(search_text, replace_text)

new_file_path = os.path.join(folder_path, "new_" + file_name)
with open(new_file_path, "w", encoding="UTF-8") as new_file:
new_file.write(new_file_content)
Bat:
 @echo off 

set folder_path=D:\Code-AD\
set script_path=D:\Code-AD\script.py

for %%f in (%folder_path%\*.json) do (
echo Processing file: %%f
python %script_path% %%f
)

echo Done
1)
 @echo off 

set script_path=%~dp0start.py

python %script_path%

echo Done
2)
 import os 

folder_path = "D:\\Code-AD\\"
replacement_folder = "Replacement"
replacement_path = folder_path + replacement_folder

# Create the Replacement folder if it doesn't exist
if not os.path.exists(replacement_path):
os.makedirs(replacement_path)

# Get the file name
file_name = input("Enter the file name (example: 1A.json):")

# Compare the file name to pre-entered variables
if file_name in ["1A.json", "2A.json"]:
# Get the name without the extension
file_name_without_ext = file_name.split(".")[0]

# Run the corresponding file with the text autocorrect code
autocorrect_code_path = folder_path + "AD\\" + file_name_without_ext + ".py"
os.system("python " + autocorrect_code_path + " " + folder_path + file_name)
else:
print("The entered file name doesn't match the pre-entered variables")
3)
  
# Variables
A = "Text-A"
B = "Text-B"

# File path passed as argument
file_path = input("Enter the file path:")

# Create a copy of the selected file in the Replacement folder
replacement_file_path = "D:\\Code-AD\\Replacement\\" + file_path.split("\\")[-1]
with open(file_path, "r") as file:
with open(replacement_file_path, "w") as copy_file:
copy_file.write(file.read())

# Open the replacement file and replace the text
with open(replacement_file_path, "r") as file:
file_content = file.read()

new_file_content = file_content.replace(A, B)

with open(replacement_file_path, "w") as file:
file.write(new_file_content)

# Display a message about the completed operation
print("Operation completed successfully!")
Сергей Ваганов
Сергей Ваганов
1 192
Лучший ответ
Репетиционная База Прочитай пж (ಥ﹏ಥ)
А то комент вмещает ток 800 символов и не дает больше всавить
https://mega.nz/file/uZMRwTBY#BblqsNEhSvFpBJpACyiXnDE7zg__PSR2c94RdkYo-c4
Сергей Ваганов Этот фрагмент кода использует метод split() для разделения строки, хранящейся в переменной file_name, на символ ".", в результате чего получается список подстрок. К первому элементу в списке, который соответствует тексту перед первым "." в исходной строке, затем осуществляется доступ с помощью индексации списка ([0]) и сохраняется в переменной file_name_without_extention.
Сергей Ваганов Это на вопрос о file_name_without_ext = file_name.split(".")[0]