Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 14, 2010 15:11:21

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

Преобразование unicode-str-str.split

input_files = str.split(str(tkFileDialog.askopenfilenames(multiple=1)))
print input_files
Проблема проблема преобразования unicode->str для имён содержащих русские символы и пробел(ы)…

К примеру

C:/Documents and Settings/admin/Рабочий стол/Учебный курс.djvu

Как решать и не знаю даже…
Подскжите пжлста.



Офлайн

#2 Апрель 14, 2010 15:49:16

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Преобразование unicode-str-str.split

Divergent
Проблема проблема
проблема проблем :)
непонятно что нужно, вот пример со сплитом и с русскими буквами
# coding: utf8

import tkFileDialog
import os

fname = tkFileDialog.askopenfilenames(multiple=1)[0]
print fname
print ','.join( fname.split(os.sep) )
результат
/home/lega/Рабочий стол/1.py~
,home,lega,Рабочий стол,1.py~

Офлайн

#3 Апрель 14, 2010 16:13:18

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

Преобразование unicode-str-str.split

Задумался задумался :)

Открывается окно выбора фалов. Далее выбираю несколько файлов. Они расположены на рабочем столе.
Пути файлов приходят в юникоде. Мне их нужно разделить и далее каждый файл прочитать и т.п., а чтобы разделить перевожу в строку, что и не получается.

Вот…



Офлайн

#4 Апрель 14, 2010 16:30:42

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование unicode-str-str.split

Divergent
чтобы разделить перевожу в строку
А имена файлов не в строке приходят разве? я к тому, что не понятно что и зачем вы пытаетесь переводить.
Вариант o7412369815963 весьма хорош.



Офлайн

#5 Апрель 14, 2010 17:06:19

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

Преобразование unicode-str-str.split

input_files = tkFileDialog.askopenfilenames(multiple=1)
print input_files, type(input_files)
Результат выполнения.

{C:/Documents and Settings/admin/Рабочий стол/test/one.log} {C:/Documents and Settings/admin/Рабочий стол/test/two.log} <type ‘unicode’>
Ну а далее


Traceback (most recent call last):
File “C:/Documents and Settings/admin/Рабочий стол/new 8.py”, line 8, in <module>
input_files = str(input_files)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 37-43: ordinal not in range(128)



Офлайн

#6 Апрель 14, 2010 17:14:31

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Преобразование unicode-str-str.split

UsCr
я к тому, что не понятно что и зачем вы пытаетесь переводить.
+1

что нужно на выходе?

у меня ф-ия askopenfilenames возвращает список файлов, т.е. их можно перебрать так:
for x in input_files:
print x

Офлайн

#7 Апрель 14, 2010 17:24:26

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование unicode-str-str.split

Divergent
Traceback (most recent call last):
File “C:/Documents and Settings/admin/Рабочий стол/new 8.py”, line 8, in <module>
input_files = str(input_files)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 37-43: ordinal not in range(128)
Ну так в этом никто и не сомневается. Вы пытались делать вышеупомянутые операции? Чем не устраивает результат?



Офлайн

#8 Апрель 14, 2010 17:36:19

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

Преобразование unicode-str-str.split

на выходе у меня должен быть список путей файлов, с которым дальше надо работать.

UsCr
Вы пытались делать вышеупомянутые операции?
Так вот и попытался и не получилось.


Хочу чтобы было вот так(файлы без русских названий)
>>> 
C:/test/one.log C:/test/two.log <type 'unicode'>
C:/test/one.log C:/test/two.log <type 'str'>
['C:/test/one.log', 'C:/test/two.log'] <type 'list'>
>>>
# coding: utf8
import Tkinter
import tkFileDialog
root = Tkinter.Tk()

input_files = tkFileDialog.askopenfilenames(multiple=1)
print input_files, type(input_files)
input_files = str(input_files)
print input_files, type(input_files)
input_files = str.split(input_files)
print input_files, type(input_files)
for files in input_files:
print files
Tkinter.mainloop()



Офлайн

#9 Апрель 14, 2010 18:12:39

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование unicode-str-str.split

Вы тролль? Толсто!



Офлайн

#10 Апрель 14, 2010 21:30:03

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

Преобразование unicode-str-str.split

UsCr
Ну так в этом никто и не сомневается. Вы пытались делать вышеупомянутые операции? Чем не устраивает результат?

UsCr
UsCr
Вы тролль? Толсто!
Выссказываний не понимаю, как судя по всему Вы моих!


Вопрос открытый!!!
грубо как сделать чтобы юникод с русскими буквами и пробелом преобразовывался в строку, а вследствии в список.

Если что-то не так объясняю в цели моего скрипта, скажите. Попробую перефразировать.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version