Читаем Приложение к «Python в библиотеке» полностью

#--------------------------------------

def EndStr(s):

, ,SQ = ''

, ,for a in reversed(s):

, , , ,if a == ' ':

, , , , , ,return SQ[:-1]

, , , ,else:

, , , , , ,SQ = a+SQ

#--------------------------------------

old_List = [] # Сюда читается

new_List = [] # Промеждуточный список

#--------------------------------------

#FN = input('Введите имя файла:')

#fn1=path+FN

FN = '1.txt'

fb2_file=open(FN,'r')

#fb2_file=open(FN,'r', encoding='utf-8')

old_List=fb2_file.readlines()

fb2_file.close()

#--------------------------------------

SS = '' # Промежуточное хранение строки

SQ = '' # Начало слова "разор-

"разорванного" "странным" переносом

FlagQ = False

i = 0

Первый проход. Поиск "странных" переносов

for item in old_List:

, ,s = item.strip()# Обрезание пробелов

, ,if s == '':

, , , ,new_List.append(s)

, , , ,i += 1

, , , ,if i > len(old_List):

, , , , , ,new_List.append(item[i+1])

, , , , , ,break

, , , ,continue

, ,

, ,if (s[-1] == '-'): # последний символ строки

, , , ,SQ = EndStr(s) # следующая строка начинается с SQ

, , , ,if (SQ != None) and (SQ != '') and (old_List[i+1].find(SQ)==0):

, , , , , ,m = -(len(SQ)+1)

, , , , , ,new_List.append(s[:m]+'@') # помечаем строку для последующего объединения

, , , ,else:

, , , , , ,new_List.append(s)

, ,else:

, , , ,new_List.append(s)

, ,i += 1

, ,if i > len(old_List):

, , , ,new_List.append(item[i+1])

, , , ,break

old_List.clear()

# второй проход. соединение строк

#for item in reversed(new_List):

for item in new_List:

, ,if item == '':

, , , ,if SS != '':

, , , , , ,old_List.append(SS)

, , , , , ,SS = ''

, , , ,old_List.append(item)

, , , ,continue

# , ,print(item)

, ,if FlagQ:

, , , ,SS = SS[:-1] + item

, , , ,FlagQ = item[-1] == '@'

, ,else:

, , , ,if SS != '':

, , , , , ,old_List.append(SS)

, , , , , ,SS = ''

, , , ,if item[-1] == '@': # последний символ строки

, , , , , ,FlagQ = True

, , , , , ,SS = item

, , , ,else:

, , , , , ,old_List.append(item)

, , , , , , , ,

if SS != '':# запись последней строки

, ,old_List.append(SS)

#--------------------------------------

fn2="2_.txt"

new_file=open(fn2,'w')

for i in old_List:

, , new_file.write(i+'\n')

new_file.close()

print('Done')

<p>str2parag.py</p>

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys, os

#-- скрипт для сборки абзацев из разрозненных строк ---

s = '' # строка коию будем записывать в список

L = [] # список для хранения выходного файла

i = 0 # указатель положения в файле

def RusBukva1(n): # обработка буквы «до»

, ,return ((n > 223) and (n < 256)) or (n==44) or (n==45)

def RusBukva2(n): # обработка буквы «после»

, ,return ((n > 223) and (n < 256))

f = open('alfredr.txt', 'rb') # открываем и читаем промежуточный файл

d = f.read()

f.close()

c13 = 2 # константа индицирующая наличие символа «13»

for n in d: # проверка промежуточного файла на наличие символа «13»

, ,if (n == 13):

, , , ,c13 = 3

, , , ,break

for n in d: # основной цикл проверки файла

, ,i +=1 # инкримент указателя положения в файле

, ,if (n == 10): # если конец строки

, , , ,if RusBukva1(d[i-c13]) and RusBukva2(d[i]): # проверяем «до» и «после»

, , , , s += ' ' # в строку пробел

, , , ,else:

, , , , L.append(s) # добавляем строку в список

, , , , s='' # подготовка пустой строки

, ,else:

, , , ,if n != 13:

, , , , , ,m = d[i-1] # эта строка и 6 строк ниже объясню еще ниже

, , , , , ,if (m > 191) and (m < 256):

, , , , , , , ,m += 848

, , , , , ,elif(m==184):

, , , , , , , ,m = 1105

, , , , , ,elif (m==151):

, , , , , , , ,m = 8212

, , , , , ,s += chr(m) # запись символа в строку

f = open('outtext.txt', 'w') # выходной файл

for etem in L: # просматриваем список и записываем в файл

, ,f.write(etem+'\n')

f.close()

print('OK!!!')

<p>utf8-1251.py</p>

#!/usr/bin/env python

# -*- coding: utf-8 -*-

fin = open('art.txt', 'r') # открываем исходный файл

out = open('outt.txt', 'w', encoding='cp1251') # подготавливаем промежуточный файл

for s in fin: # переписываем из файла в файл

, ,s = s.rstrip()

, ,out.write(s+'\n')

fin.close()

out.close()

print('Done')

<p>8 Images</p><p>base64_pic.py</p>

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys, os

import base64

def getAttribute(Tag):

, ,s = Tag[Tag.find(' id=')+4:]

, ,s = s[s.find('"')+1:]

, ,s = s[:s.find('"')]

, ,return s

def parseBinaryContent(filename):

, ,

# filename = sys.argv[1]

, ,if filename[-4:] == '.fb2':

, , , , dirname = filename[:-4]+'_pic'

, ,else:

, , , , exit()

, ,if not os.path.isdir(dirname):

, , , ,os.mkdir(dirname)

, ,flag = False

, ,bina = False

, ,S = ''

, ,#------------------------

, ,path = os.getcwd()

, ,fin = os.path.join(path, filename)

, ,f = open(fin, 'rb')

, ,d = f.read()

, ,

, ,for n in d:

, , , ,if bina:

, , , , , ,if chr(n) == '<':

, , , , , , , ,print('5')

, , , , , , , ,dd = base64.urlsafe_b64decode(S) #()

, , , , , , , ,hh = open(os.path.join(dirname, name_Pic), 'wb')

, , , , , , , ,hh.write(dd)

, , , , , , , ,hh.close()

, , , , , , , ,bina = False

, , , , , ,else:

, , , , , , , ,S = S + chr(n)

, , , , , ,continue

, , , ,if chr(n) == '<': # начало тега

, , , , , ,

, , , , , ,flag = True

, , , , , ,Tag = ''

, , , ,else:

, , , , , ,if flag:

, , , , , , , ,if chr(n) == '>':

, , , , , , , , , ,

, , , , , , , , , ,flag = False

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных