Уведомления

Группа в Telegram: @pythonsu

#1 Март 24, 2010 14:00:22

wade
От:
Зарегистрирован: 2010-01-24
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить русскоязычное имя файла под windows

Добрый день

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

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

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

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

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

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

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

Спасибо.



Офлайн

#2 Март 24, 2010 14:07:26

Nik
От:
Зарегистрирован: 2010-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить русскоязычное имя файла под windows

>>> 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()
Также без проблем…



Отредактировано (Март 24, 2010 14:14:52)

Офлайн

#3 Март 24, 2010 17:05:24

wade
От:
Зарегистрирован: 2010-01-24
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить русскоязычное имя файла под windows

Спасибо Вам за помощь. Ваши примеры и у меня работают - возможно ошибка где-то еще.

Я попробовал и еще такой пример:

# -*- 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()
Тоже все работает.



Офлайн

#4 Март 26, 2010 18:22:00

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Сохранить русскоязычное имя файла под windows

wade
Кодировка скрипта - cp1251.
1. Перекодировать скрипт в UTF-8.
2. Использовать unicode для имён файлов.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version