Найти - Пользователи
Полная версия: Сохранить русскоязычное имя файла под windows
Начало » Python для новичков » Сохранить русскоязычное имя файла под windows
1
wade
Добрый день

У меня такая проблема:

я пытаюсь в windows сохранить файл с русскоязычным именем. Я даю в качестве имени string в кодировке cp1251 , в ошибке пишет “недопустимое имя файла”, при этом в тексте ошибки имя файла выглядит так, как будто оно декодировано в unicode перед тем, как его поставить.

Кодировка скрипта - cp1251.

При этом, если я в шелле даю русское имя файла - все без проблем, т.е. питон сам его рекодит в cp1251 и сохраняет.

Задача мне видится так: дать питону string в нужном виде. Но в каком? В unicode давал - тоже ошибка…

Кто-нибудь сталкивался с чем-то подобным?

Как сохранить файл с русскоязычным именем?

Спасибо.
Nik
>>> f = open("мойфайл.txt", "w")
>>> f.write("Строка записана в файл")
>>> f.close()
>>> f = open(unicode("мойфайл2.txt", "cp1251"), "w")
>>> f.write("Строка записана в файл")
>>> f.close()
Никаких проблем не возникло… Два файла были созданы с русскими именами…

# -*- coding: cp1251 -*-
f = open("мойфайл3.txt", "w")
f.write("Строка записана в файл")
f.close()
f = open(unicode("мойфайл4.txt", "cp1251"), "w")
f.write("Строка записана в файл")
f.close()
print "OK"
raw_input()
Также без проблем…
wade
Спасибо Вам за помощь. Ваши примеры и у меня работают - возможно ошибка где-то еще.

Я попробовал и еще такой пример:
# -*- coding: cp1251 -*-
f = open("мойфайл3.txt", "w")
f.write("мойфайл_new.txt")
f.close()
fr = open('мойфайл3.txt','r').readlines()[0]

f = open(unicode(fr, "cp1251"), "w")
f.write("Строка записана в файл")
f.close()
print "OK"
raw_input()
Тоже все работает.
ZZZ
wade
Кодировка скрипта - cp1251.
1. Перекодировать скрипт в UTF-8.
2. Использовать unicode для имён файлов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB