Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 6, 2020 02:06:42

alexpp
Зарегистрирован: 2020-02-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Замена русского текста в нескольких файлах в директории и поддиректориях

Короче разобрался сам, этот форум оказался абсолютно бесполезным, как и советы тут.
На будущее - вместо такой фигни:

Во-первых, декларация кодировки сверху вообще не нужна
Тут я вообще не понял что вы хотите.
Чтобы это всё знать, надо читать документацию к функции
python.org. open()
Если планируется писать надежный код то надо использовать инструменты которые будут использовать эту информацию. Например библиотеку lxml.
Давайте либо конкретные рекомендации по скрипту (гуглом все умеют пользоваться кто добрался до этого забытого сайта), либо вообще ничего не пишите, это не сложно.
Ветка, вроде, специально для начинающих.

Для тех кто потом будет гуглить что сделал:
1й скрипт - меняем кодировку у файлов по маске:
 for file in ~/SITE/*/*.html; do 
    iconv -f WINDOWS-1251 -t UTF-8 -o "$file.new" "$file" && mv -f "$file.new" "$file"
done

2й скрипт сделал на ruby, хотя уверен, что и на питоне можно:
 original_text1 = "Адрс редакции"
replacement_text1 = "Адрес редакции"
original_text2 = "Невскй пр."
replacement_text2 = "Невский пр."
Dir.glob("/home/alex/SITE/*/*.html") do |file_name|
  text = File.read(file_name)
  replace = text.gsub!(original_text1, replacement_text1)
  replace = text.gsub!(original_text2, replacement_text2)
  File.open(file_name, "w") { |file| file.puts replace }
end
Если у вас поменяна кодировка в html файле с windows-1251 на UTF-8, не забудьте в скрипте заменить в коде html кодировку на UTF-8

 original_textX = "windows-1251"
replacement_textX = "UTF-8"

Всем удачи в ваших поисках!

Отредактировано alexpp (Фев. 6, 2020 02:08:43)

Офлайн

#2 Фев. 6, 2020 02:42:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Замена русского текста в нескольких файлах в директории и поддиректориях

alexpp
2й скрипт сделал на ruby, хотя уверен, что и на питоне можно:
Да тут можно и без Python, и без Ruby обойтись одним Shell'ом только. То, что ты на Ruby сделал, делается одной командой через sed в Linux.

alexpp
Короче разобрался сам, этот форум оказался абсолютно бесполезным, как и советы тут.
Направление-то тебе правильно дали. Кодировка, перекодирование файла, это всё тут изначально витало.

alexpp
Давайте либо конкретные рекомендации по скрипту
Да тут не принято говнокод доводить до конфетки. Лучше выяснить, в чём задача, и с нуля написать правильное решение.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version