Python » Страница 718

-

Программирование на Python



harek535


репутация:
на сайте с 1970 года
сообщений:

#7171

chamil.85,
все заработало то что быыло нужно.
если будут какие либо проблемы отпишу.
еще раз спасибо за помощь.
пойду почитаю про этот модуль.

MaddyMax


репутация:
на сайте с 1970 года
сообщений:

#7172

Вечер добрый, господа.
Помогите мне пожалуйста решить проблему.
Я решил написать простенький блокнот на Питоне. В моем распоряжении Nokia 5530xm, на которой стоит Python 1.4.5, но пишу в основном на компе.
В данный момент программа такая:

ru=lambda x: x.decode('utf-8')
import appuifw, os, e32
appuifw.app.title = u"PPad"
appuifw.app.screen = "large"

#Объявляем функцию выхода из программы
def quit():
if appuifw.query(ru("Хотите выйти?"), "query") == 1: appuifw.app.set_exit()

appuifw.app.exit_key_handler=quit

#Функция очистки экрана/создания нового документа
def ClearDoc():
appuifw.app.body.clear()
appuifw.app.body.set_pos(0)

#Функция сохранения документа
def SaveDoc():
filename = appuifw.query(ru("Введите название файла"), "text")
if filename:
fullpath = str(filename) + ".txt"
fullpath = "c:\\" + fullpath
if os.path.exists(fullpath) == 0:
filewrite = open(fullpath, 'w')
content = Text.get()
filewrite.writelines(content.encode("UTF-8"))
filewrite.close()
appuifw.note(ru("Файл " + fullpath + " сохранен!"), "info")
elif os.path.exists(fullpath) == 1:
rewritefile = appuifw.query(ru("Файл уже существует! Заменить?"), "query")
if rewritefile == 1:
filewrite = open(fullpath, 'w')
content = Text.get()
encontent = content.encode("UTF-8")
filewrite.write(encontent)
filewrite.close()
appuifw.note(ru("Файл " + fullpath + " сохранен!"), "info")
else:
appuifw.note(ru("Файл НЕ сохранен!"), "error")

#Функция вывода информации
def AboutSoft():
appuifw.note(ru("2012\n2012"), "info")


appuifw.app.menu = [(ru("Новый/Очистить"), ClearDoc), (ru("Сохранить в UTF-8"), SaveDoc), (ru("Инфо"), AboutSoft)]
appuifw.app.body = Text = appuifw.Text()


lock = e32.Ao_lock()
os.abort = lock.signal
lock.wait()


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

Опытным путем было установлено, что следующий код помогает придти к компромиссу кириллице и переносам строк:
#coding: utf-8
ru=lambda x: x.decode('utf-8')

test = unicode('PPad - примитивная программа для создания текстовых файлов.\nДля начала работы выберите пункт меню Новый/Очистить.', 'UTF-8')

f = open('C:\\test.txt', 'w')
f.write(test.encode('UTF-8').replace('\n','\r\n'))
f.close()


Казалось бы, что выход найден - остается лишь заменить
content = Text.get()

на
content = unicode(Text.get(), "UTF-8")

и дело в шляпе.
Но нет, от такого способа консоль приходит в ярость и негодует:
Traceback (most recent call last): file "c:\python\EasyPad.py", line 25, in SaveDoc
content = unicode(Text.get(), "UTF-8")
TypeError: decoding Unicode is not supported


Как же мне подружить мой блокнотик и переносы строк?

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#7173

content = Text.get().replace(u'\u2029', u'\r\n')

Punk_Joker


репутация: 26
на сайте с 2009 года
сообщений: 64

Nokia N9

Украина

Возраст - 30

#7174

Это ток у меня, из коробки, в питон 2.0.0 нет модуля zipfile.

MaddyMax


репутация:
на сайте с 1970 года
сообщений:

#7175

JOIN_ME, вы маг! smile
Огромное вам спасибо!

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#7176

Ничего магического, все просто. =) Консоль:
Python 2.2.2 (#0, Nov 20 2008, 17:19:59)
[GCC 2.9-psion-98r2 (Symbian build 546)] on symbian_s60
Type "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import appuifw
>>> appuifw.app.body.get()
u'Python 2.2.2 (#0, Nov 20 2008, 17:19:59) \u2029[GCC 2.9-psion-98r2 (Symbian build 546)] on symbian_s60\u2029Type "copyright", "credits" or "license" for more information.\u2029(InteractiveConsole)\u2029>>> import appuifw\u2029>>> appuifw.app.body.get()\u2029'
>>>

Virtuos86


репутация: 101
на сайте с 2008 года
сообщений: 802

где-то в России

#7177

Цитата: harek535
...пойду почитаю про этот модуль.


И как вы, интересно, вообще программы пишете. Ну ладно хоть собрался почитать про модуль. Вот только вряд ли в доках найдешь объяснение, почему такая микропауза помогает, лучше форум почитать.

Punk_Joker


репутация: 26
на сайте с 2009 года
сообщений: 64

Nokia N9

Украина

Возраст - 30

#7178

ктот работал с зип в питоне (2.0.0). Как извлечь файл из архива?

Virtuos86


репутация: 101
на сайте с 2008 года
сообщений: 802

где-то в России

#7179

Цитата: Punk_Joker
 Это ток у меня, из коробки, в питон 2.0.0 нет модуля zipfile.


В стандартной либе - !:/Resource/Python25/python25.zip - нет. В батарейках PythonScriptShell - C:/Private/e7881dfa/lib.zip - есть.
-------------
добавлено в 04.27: MaddyMax, а как твой код обрабатывает имена файлов в кириллице? Я про это:

fullpath = str(filename) + ".txt"

Landw1rt


репутация: 4
на сайте с 2008 года
сообщений: 69

Sony Xperia M2

Москва

Возраст - 34

#7180

Приведите, пожалуйста, пример работы с measure_text(). В каком виде записывается текст на входе и и в каком выдаются на выходе?

Интересует, сколько символов текста определённого размера упишется ы рамки экрана.


Яндекс.Метрика