Difference between revisions of "User talk:Rung"
(скрипт обработки номеров страниц) |
|||
Line 4: | Line 4: | ||
Для уже имеющихся в вики страниц несложно сообразить скриптик на Питоне, меняющий номер на коммент... Может, этим займусь. |
Для уже имеющихся в вики страниц несложно сообразить скриптик на Питоне, меняющий номер на коммент... Может, этим займусь. |
||
[[User:Const2k|Const2k]] 10:23, 2 July 2008 (PDT) |
[[User:Const2k|Const2k]] 10:23, 2 July 2008 (PDT) |
||
+ | ---- |
||
− | |||
Сделай, плиз, ещё:<br/> |
Сделай, плиз, ещё:<br/> |
||
-замену знака возврата каретки без цифры тегом br,<br/> |
-замену знака возврата каретки без цифры тегом br,<br/> |
||
-аналогичне с цифрой пустым абзацем, а цифру в тег. |
-аналогичне с цифрой пустым абзацем, а цифру в тег. |
||
--[[User:Rung|Rung]] 11:46, 2 July 2008 (PDT) |
--[[User:Rung|Rung]] 11:46, 2 July 2008 (PDT) |
||
+ | ---- |
||
+ | Я не совсем понял ТЗ, поэтому сделал только замену номера страницы на номер в тэге... |
||
+ | |||
+ | '''Код отсюда не копировать!!! Копировать только из режима редактирования!''' |
||
+ | |||
+ | '''Don't copy code below!!! Copy from "edit" page only - they're DIFFERENT!''' |
||
+ | import codecs, glob |
||
+ | files = glob.glob('Fate?.txt') # files to be processed, * and ? can be used |
||
+ | files.sort() |
||
+ | for file in files: |
||
+ | test = open(file, 'rb') |
||
+ | ident = test.readline() |
||
+ | if ident.startswith('\xFF\xFE'): format = 'UTF-16' |
||
+ | elif ident.startswith('\xFE\xFF'): format = 'UTF_16_BE' |
||
+ | else: format = 'CP1251' |
||
+ | del test, ident |
||
+ | raw = codecs.open(file, 'r', format) |
||
+ | res = codecs.open('HTML'+file, 'w', format) |
||
+ | print (file+' ('+format+') ... '), |
||
+ | for line in raw: |
||
+ | try: |
||
+ | if int(line) >= 0: line = '<!--*page'+str(int(line))+'|-->\r\n' |
||
+ | except: pass |
||
+ | res.write(line) |
||
+ | res.close() |
||
+ | raw.close() |
||
+ | print 'OK' |
||
+ | |||
+ | ^^^ Это дело ^^^ надо сохранить в *.py-файл в одном каталоге со скриптами. Скрипты должны быть либо в Юникоде ('''Блокнот'''овый UTF-16, но не UTF-8), либо в русской кодировке ('''Блокнот'''овый "ANSI", он же Win-1251 для русских ОС). Их имена задаются маской во второй строчке ("files = ..."), как в консоли (? = любой символ, * = любое число любых символов). Пример рассчитан на файлы с именами Fate1.txt, Fate2.txt и т.д. до Fate9.txt |
||
+ | Полученные файлы сохраняются в том же каталоге под именами HTML<оригинальное_имя_файла> в оригинальном формате, т.е. HTMLFate1.txt, HTMLFate2.txt и т.д. |
||
+ | |||
+ | Насчет возвратов каретки нужно уточнение... Желательно, в виде "если ... то ..." Пойдет и пример (куска) страницы в желаемом виде. |
||
+ | |||
+ | А то я "возврат каретки" себе ещё представляю, а вот "с цифрой" - уже сложно... x_x [[User:Const2k|Const2k]] 10:46, 8 July 2008 (PDT) |
Revision as of 19:46, 8 July 2008
Номера страниц в тексте FSN
Идея с номерами страниц хорошая, но в вики номера делают текст слабо читаемым. Поэтому предлагаю номера страниц писать в тексте HTML-комментами. (!) Для уже имеющихся в вики страниц несложно сообразить скриптик на Питоне, меняющий номер на коммент... Может, этим займусь. Const2k 10:23, 2 July 2008 (PDT)
Сделай, плиз, ещё:
-замену знака возврата каретки без цифры тегом br,
-аналогичне с цифрой пустым абзацем, а цифру в тег.
--Rung 11:46, 2 July 2008 (PDT)
Я не совсем понял ТЗ, поэтому сделал только замену номера страницы на номер в тэге...
Код отсюда не копировать!!! Копировать только из режима редактирования!
Don't copy code below!!! Copy from "edit" page only - they're DIFFERENT!
import codecs, glob files = glob.glob('Fate?.txt') # files to be processed, * and ? can be used files.sort() for file in files: test = open(file, 'rb') ident = test.readline() if ident.startswith('\xFF\xFE'): format = 'UTF-16' elif ident.startswith('\xFE\xFF'): format = 'UTF_16_BE' else: format = 'CP1251' del test, ident raw = codecs.open(file, 'r', format) res = codecs.open('HTML'+file, 'w', format) print (file+' ('+format+') ... '), for line in raw: try: if int(line) >= 0: line = '\r\n' except: pass res.write(line) res.close() raw.close() print 'OK'
^^^ Это дело ^^^ надо сохранить в *.py-файл в одном каталоге со скриптами. Скрипты должны быть либо в Юникоде (Блокнотовый UTF-16, но не UTF-8), либо в русской кодировке (Блокнотовый "ANSI", он же Win-1251 для русских ОС). Их имена задаются маской во второй строчке ("files = ..."), как в консоли (? = любой символ, * = любое число любых символов). Пример рассчитан на файлы с именами Fate1.txt, Fate2.txt и т.д. до Fate9.txt Полученные файлы сохраняются в том же каталоге под именами HTML<оригинальное_имя_файла> в оригинальном формате, т.е. HTMLFate1.txt, HTMLFate2.txt и т.д.
Насчет возвратов каретки нужно уточнение... Желательно, в виде "если ... то ..." Пойдет и пример (куска) страницы в желаемом виде.
А то я "возврат каретки" себе ещё представляю, а вот "с цифрой" - уже сложно... x_x Const2k 10:46, 8 July 2008 (PDT)