Найти - Пользователи
Полная версия: Преобразование unicode-str-str.split
Начало » Python для новичков » Преобразование unicode-str-str.split
1 2
Divergent
input_files = str.split(str(tkFileDialog.askopenfilenames(multiple=1)))
print input_files
Проблема проблема преобразования unicode->str для имён содержащих русские символы и пробел(ы)…

К примеру

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

Как решать и не знаю даже…
Подскжите пжлста.
o7412369815963
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~
Divergent
Задумался задумался :)

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

Вот…
UsCr
Divergent
чтобы разделить перевожу в строку
А имена файлов не в строке приходят разве? я к тому, что не понятно что и зачем вы пытаетесь переводить.
Вариант o7412369815963 весьма хорош.
Divergent
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)
o7412369815963
UsCr
я к тому, что не понятно что и зачем вы пытаетесь переводить.
+1

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

у меня ф-ия askopenfilenames возвращает список файлов, т.е. их можно перебрать так:
for x in input_files:
print x
UsCr
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)
Ну так в этом никто и не сомневается. Вы пытались делать вышеупомянутые операции? Чем не устраивает результат?
Divergent
на выходе у меня должен быть список путей файлов, с которым дальше надо работать.
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()
UsCr
Вы тролль? Толсто!
Divergent
UsCr
Ну так в этом никто и не сомневается. Вы пытались делать вышеупомянутые операции? Чем не устраивает результат?
UsCr
UsCr
Вы тролль? Толсто!
Выссказываний не понимаю, как судя по всему Вы моих!


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

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