,else:
, , , , , , , , , , , ,if Tag[-1] != '/': # обработка одинарных тегов
, , , , , , , , , , , , , , L.append(S) # запись в стек
, , , , , , , ,else:
, , , , , , , , , ,Tag = Tag + chr(n) # добавление символа к тегу
, ,return False # удачная проверка.
def parse_zip(fn): # обработка zip
, ,global OList
, ,z = zipfile.ZipFile(fn, 'r')
, ,filelist = z.namelist()
, ,filelist.sort()
, ,for n in filelist:
, , , ,try:
, , , , , ,if n[-4:] == ".fb2":
, , , , , , , ,if fb2err(z.open(n, 'r')):
, , , , , , , , , ,OList.append(fn)
, , , ,except:
, , , , , ,print( "X15:", n )
def parse_file(fn): # обработка файла
, ,global OList
, ,m = fn.split(".")[-1]
, ,if (m == "zip"): # если zip
, , , ,parse_zip(fn)
, ,elif (m == "fb2"): # если fb2
, , , ,if fb2err(fn):
, , , , , ,OList.append(fn)
, , , ,
def parse_dir(fn): # сканирование папки
, ,dirlist = os.listdir(fn)
, ,dirlist.sort()
, ,for a in dirlist:
, , , ,b = os.path.join(fn, a)
, , , ,if os.path.isdir(b):
, , , , , ,parse_dir(b) # сканирование подпапки
, , , ,else:
, , , , , ,if os.path.getsize(b) > 0:
, , , , , , , ,parse_file(b)
#-------------------------
path = os.getcwd()
parse_dir(path) # сканирование текущей папки
if len(OList) > 0: # сохранение результатов
, ,fn = 'fb2Error.txt'
# при необходимости сохранения старых файлов fb2Error.txt - снять комментарии
, ,nu = 0
, ,while os.path.isfile(fn):
, , , ,nu += 1
, , , ,fn = 'fb2Error'+str(nu)+'.txt'
#
, ,f = open(fn, 'w')
, ,for i in OList:
, , , ,f.write(i+'\n')
, ,f.close()
print('Файлов с ошибкой '+str(Count))
moveIn.py
#!/usr/bin/env python
# -*- codning: utf-8 -*-
import sys, os
import shutil
# перемещение поврежденный файлов fb2 для последующего ремонта
#----------------------------------------------
path = os.getcwd()
Count = 0
fn = 'fb2Error.txt' # !!! проследить за правильностью имени файла !!!
if os.path.isfile(fn): # проверяем существование
, ,with open(fn, 'r') as text: # открываем файл
, , , ,mylist = text.readlines() # и читаем
, ,fName = 'infiles' # подготавливаем имя папки адресата
, ,if (not os.path.isdir(fName)): # если адресата нет
, , , ,os.mkdir(fName) # то создаем его
, ,mydir = os.path.join(path, fName)
, ,for i in mylist: # просматриваем список
, , , ,i = i.strip() # отрубаем пробелы
, , , ,name = os.path.basename(i) # выделяем имя файла
, , , ,dst = os.path.join(mydir, name) # определяем куда его сунуть
, , , ,if os.path.isfile(i) and (not os.path.isfile(dst)):
, , , , , ,shutil.move(i, dst) # перемещаем файл
, , , , , ,Count += 1 # обновляем статистику
#os.path.join(dirpath, filename))
print('Файлов перемещено '+str(Count))
#shutil.move(src, dst)
moveOut.py
#!/usr/bin/env python
# -*- codning: utf-8 -*-
import sys, os
import shutil
# перемещение файлов fb2 после ремонта на места дислокации
#----------------------------------------------
path = os.getcwd()
Count = 0
fn = 'fb2Error.txt' # !!! проследить за правильностью имени файла !!!
if os.path.isfile(fn): # проверяем существование
, ,with open(fn, 'r') as text: # открываем файл
, , , ,mylist = text.readlines() # и читаем
, ,fName = 'infiles' # подготавливаем имя ремонтной папки
, ,if (not os.path.isdir(fName)): # если адресата нет
, , , ,print('???')
, , , ,exit() # то делать нечего...
, ,mydir = os.path.join(path, fName) # ремонтная папка
, ,for i in mylist: # просматриваем список
, , , ,i = i.strip() # отрубаем пробелы
, , , ,name = os.path.basename(i) # выделяем имя файла
, , , ,dst = os.path.join(mydir, name) # определяем откуда его высунуть
, , , ,if os.path.isfile(dst): # если файл на месте
, , , , , ,shutil.move(dst,i) # перемещаем файл
, , , , , ,Count += 1 # обновляем статистику
print('Файлов перемещено '+str(Count))
un_zip.py
#!/usr/bin/env python
# -*- codning: utf-8 -*-
import sys, os
import zipfile
# Извлечение из архивов в папке
#----------------------------------------------
path = os.getcwd()
Count = 0
def parse_zip(fn): # обработка zip
, ,global path
, ,global Count
, ,z = zipfile.ZipFile(fn, 'r')
, ,z.extractall(path)
, ,Count += 1
def parse_file(fn): # обработка файла
, ,m = fn.split(".")[-1]
, ,if (m == "zip"): # если zip
, , , ,parse_zip(fn)
, , , ,
def parse_dir(fn): #
, ,dirlist = os.listdir(fn)
, ,dirlist.sort()
, ,for a in dirlist:
, , , ,if os.path.getsize(a) > 0:
, , , , , , , ,parse_file(a)
#-------------------------
parse_dir(path) # сканирование текущей папки
print('Файлов извлечено '+str(Count))
7
j_par.py
#!/bin/env python
# -*- coding: utf-8 -*-
# Объединение абзацев (версия 19.10.21)
import sys, os
#--------------------------------------
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 = '2_.txt'
fb2_file=open(FN,'r')
#fb2_file=open(FN,'r', encoding='utf-8')
old_List=fb2_file.readlines()
fb2_file.close()
#--------------------------------------
SS = '' # Промежуточное хранение строки
FlagQ = False
i = -1
for item in old_List: # первый проход
поиск разорванных строк
, ,i += 1
, ,if i >= len(old_List):
# , , , ,new_List.append(item[i+1]) ?
, , , ,break
, ,s = item.strip()# Обрезание пробелов
, ,if s == '':
, , , ,new_List.append(s)
, , , ,continue
, ,m = ord(s[-1]) # последний символ строки
# , ,print(s)
, ,if (m > 1071 and m < 1104) or m == 44: # от "а" до "я" + ","
, , , ,if i+1 >= len(old_List):
, , , , , ,break
, , , ,d = old_List[i+1].strip()
, , , ,if (d != ''):
, , , , , ,m = ord(d[0]) # первый символ следующей строки
, , , , , ,if (m > 1071 and m < 1104): # от "а" до "я"):
, , , , , , , ,new_List.append(s+' @')# помечаем строку для объединения с последующей
, , , , , ,else:# в обычном тексте вероятность, что строка
завершится "собачкой" очено мала, но ... тогда это будет ошибочное объединение
, , , , , , , ,new_List.append(s)
, , , ,else:
, , , , , ,new_List.append(s)
, ,else:
, , , ,new_List.append(s)
old_List.clear()
#for item in reversed(new_List): # второй проход
объединение помеченных строк
for item in new_List:
, ,if item == '':
, , , ,if SS !=
Последние комментарии
17 часов 12 минут назад
17 часов 14 минут назад
18 часов 12 минут назад
18 часов 34 минут назад
1 день 12 часов назад
1 день 12 часов назад