Это первый раз, когда я задаю вопрос по stackoverflow, поэтому дайте мне знать, если я что-то не так делаю.
Я пытаюсь переименовать файл с помощью библиотеки os. Я хочу, чтобы имя файла включало некоторые не-ascii символы в строку, которую я сгенерировал. Вот код:
for subdir, dirs, files in os.walk(startDir):
for file in files:
# some code to generate the newFileName string
os.rename(os.path.join(subdir,file), s.path.join(subdir,newFileName))
Вот пример того, какой будет строка newFileName: "te © st © .txt"
Однако, когда файл сохраняется, он добавляет дополнительный символ: "test. .txt"
Из другого прочтения, которое я сделал, звучит так, будто utf-8 на самом деле отображает определенные коды в два символа или что-то в этом роде, и именно отсюда и происходит. Если я печатаю строку прямо перед вызовом os.rename, она печатает на терминал так, как я ожидаю. Я предполагаю, что это должно быть связано с тем, как os.rename взаимодействует с файловой системой.
Я использую Windows.