Я искал вокруг, но хотя я видел некоторые проблемы, похожие на мои, мне не удалось получить достаточно информации, чтобы решить мою проблему ...
Мой коллега работает надСайт Wordpress, и у них возникают проблемы с просмотром некоторых изображений (они не будут отображаться в слайд-шоу).Изображения, которые не показывались, были названы по-гречески, поэтому они предположили, что это была проблема с именами.Поэтому я подумал, что помогу, написав скрипт для массового переименования указанных изображений с греческого на греческий (форма греческого языка, использующая латинские символы и популярная среди греков в первые дни Интернета - для тех, кто не знаком с термином).
Я протестировал скрипт со всеми видами греческих символов, он отлично работал, включая знаки, характерные для греческого языка.
Когда я запускал скрипт на изображениях, которыеЯ хотел переименовать, хотя некоторые изображения показали проблему.Они переименовывали некоторые акцентированные символы во французские акцентированные символы (например, от ά до à и т. Д.), Но когда я добавил их в словарь (я использовал словарь для разбора имен и заменил греческие буквы), они отказались изменить.
Например, для этого имени файла «palaiá-póli-4-768x480» я запускал сценарий дважды: первый преобразовал его из «Παλαιά-Πόλη-4-768x156» в указанное выше имя, а второй запуск ничего не сделал, даже после добавления »á ":" a "и" ó ":" o "к карте символов (которой раньше не было, поскольку á и á не являются греческими символами.)
Мой сценарий выглядит следующим образом:
import os
char_migrate = {
"ς": 's',
'ε': 'e', 'ρ': 'r', "τ": "t", "υ": "y", "θ": "th", "ι": "i", "ο": "o", "π": "p", "α": "a",
"σ": "s", "δ": "d", "φ": "f", "γ": "g", "η": "i", "ξ": "x", "κ": "k", "λ": "l",
"ζ": "z", "χ": "x", "ψ": "ps", "ω": "o", "β": "v", "ν": "n", "μ": "m",
"Ε": "e", "Ρ": "r", "Τ": "t", "Υ": "y", "Θ": "th", "Ι": "i", "Ο": "o", "Π": "p", "Α": "a",
"Σ": "s", "Δ": "d", "Φ": "f", "Γ": "g", "Η": "i", "Ξ": "x", "Κ": "k",
"Λ": "l", "Ζ": "z", "Χ": "x", "Ψ": "ps", "Ω": "o", "Β": "v", "Ν": "n", "Μ": "m",
"Έ": "e", "Ά": "a", "Ύ": "y", "Ί": "i", "Ό": "o", "Ή": "i", "Ώ": "o",
"έ": "e", "ά": "a", "ύ": "y", "ί": "i", "ό": "ο", "ή": "i", "ώ": "o",
"ϋ": "i", "ϊ": "i", "ΐ": "i", "ΰ": "i",
"Ϊ": "i", "Ϋ": "i"
}
os.chdir('C:/Users/alift/Desktop/RenameTestFolder')
for f in os.listdir():
name = f
new_name = ""
for l in name:
if l in char_migrate:
b = char_migrate[l]
new_name += b
else:
new_name += l
os.rename(f, new_name)
Пока я пытался добавить .encode (encoding = "xxx") для new_name внутри os.rename, пробовал Unicode, UTF-8 и Ansi (только UTF-8 заставил мой скрипт работать безошибки, но я прочитал, что это кодировка по умолчанию, которую использует python, и я не получил никаких результатов).
В конце концов, моя проблема, вероятно, заключается в том, что вместо этого мне нужно пакетно изменить кодировкусмены партииимена, как я, но я не знаю, как это сделать.
Любые советы или понимание?Спасибо за ваше время!