Форум сайта python.su
0
Короче разобрался сам, этот форум оказался абсолютно бесполезным, как и советы тут.
На будущее - вместо такой фигни:
Во-первых, декларация кодировки сверху вообще не нужна
Тут я вообще не понял что вы хотите.
Чтобы это всё знать, надо читать документацию к функции
python.org. open()
Если планируется писать надежный код то надо использовать инструменты которые будут использовать эту информацию. Например библиотеку lxml.Давайте либо конкретные рекомендации по скрипту (гуглом все умеют пользоваться кто добрался до этого забытого сайта), либо вообще ничего не пишите, это не сложно.
for file in ~/SITE/*/*.html; do iconv -f WINDOWS-1251 -t UTF-8 -o "$file.new" "$file" && mv -f "$file.new" "$file" done
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
original_textX = "windows-1251" replacement_textX = "UTF-8"
Отредактировано alexpp (Фев. 6, 2020 02:08:43)
Офлайн
857
alexppДа тут можно и без Python, и без Ruby обойтись одним Shell'ом только. То, что ты на Ruby сделал, делается одной командой через sed в Linux.
2й скрипт сделал на ruby, хотя уверен, что и на питоне можно:
alexppНаправление-то тебе правильно дали. Кодировка, перекодирование файла, это всё тут изначально витало.
Короче разобрался сам, этот форум оказался абсолютно бесполезным, как и советы тут.
alexppДа тут не принято говнокод доводить до конфетки. Лучше выяснить, в чём задача, и с нуля написать правильное решение.
Давайте либо конкретные рекомендации по скрипту
Офлайн