В Январе таблицы не включают столбцы с предыдущими месяцами. Пробуем просто поменять параметры в настройках метощдов класса
!chcp 65001
!dir C:\Users\kiss\Documents\Xpdf\aebru_2014_all_txt
Пропишем путь к рабочему модулю в переменную окружения¶
import sys
sys.path.append('C:\\Users\\kiss\\SkyDrive\\Docs\\pdftotext\\AEB\\pdgtotext')
sys.path
Вот он, последний, теперь импортируем все сюда
from aebto3tables import *
Проверим, вот константа из модуля:
CSVFOLDER
class January (Aebto3tables):
"""Try to tune august"""
#txtfile_path = 'C:\\Users\\kiss\\Documents\\Xpdf\\aebru_2014_all_txt\\eng_car-sales-in-august-2014.txt'
#csvfilename = 'eng_car-sales-in-august-2014.csv'
#
def tab1fromtxt(self, txtfile_path, csvfilename, csvfolder=CSVFOLDER):
"""
Первая таблица - самые продаваемые марки (50 строк)
Вот первые две:
Lada 151527 159490 -5% 44100 50102 -12%
Renault* 67208 57217 17% 19178 17914 7%
"""
t1 = []
with open(txtfile_path) as f1:
for line in f1:
lns1 = filter(None, line.split(' '))
if len(lns1) in range(4, 5):
if (lns1[-1].find('-') != -1) | (lns1[-1].find('%') != -1):
#if (lns1[-4].find('-') != -1) | (lns1[-4].find('%') != -1):
if (line.partition(' ')[2] != ['']) and (line.partition(' ')[0].strip() != 'Total'):
tline = map(str.strip, lns1)
t1.append(tline)
csvfile_path = csvfolder + '\\1aug2\\' + csvfilename
self.tocsv(t1, csvfile_path)
#print t1
def tab2fromtxt(self, txtfile_path, csvfilename, csvfolder=CSVFOLDER):
"""
Вторая - суммарные продажи по фирмам (все фирмы)
NISSAN 30,9 31,1 266169 274285 -3% 29,3 30,2 71977 80630 -12%
AVTOVAZ 17,6 18,1 151527 159490 -5% 18,0 18,8 44100 50102 -12%
"""
t2 = []
with open(txtfile_path) as f2:
for line in f2:
lns2 = filter(None, line.split(' '))
if len(lns2) in range(6, 7):
if (lns2[-1].find('-') != -1) | (lns2[-1].find('%') != -1):
#if (lns2[-7].find('-') != -1) | (lns2[-7].find('%') != -1):
if (line.partition(' ')[2] != ['']): #
tline = map(str.strip, lns2)
t2.append(tline)
csvfile_path = csvfolder + '\\2aug2\\' + csvfilename
self.tocsv(t2, csvfile_path)
#print t2
def tab3fromtxt(self, txtfile_path, csvfilename, csvfolder=CSVFOLDER):
"""
Третья должна состоять из 25 строк вида:
1 Granta Lada 52765 26674 98% 15596 9798 59%
2 Solaris Hyundai 35941 38051 -6% 10553 10979 -4%
"""
t3 = []
with open(txtfile_path) as f3:
for line in f3:
lns3 = filter(None, line.split(' '))
if len(lns3) in range(7, 8):
if lns3[0].isdigit():
if (line.find(' ') != -1):
if (line.partition(' ')[2] != ['']) and (line.partition(' ')[0].isdigit()):
tline = map(str.strip, lns3)
t3.append(tline)
csvfile_path = csvfolder + '\\3aug2\\' + csvfilename
self.tocsv(t3, csvfile_path)
#print t3
txtfile_path = 'C:\\Users\\kiss\\Documents\\Xpdf\\aebru_2014_all_txt\\sales-in-january_2014_eng_final_1.txt'
csvfilename = 'sales-in-january_2014_eng_final_1.csv'
J = January('2014-01')
Сначала пробуем исправленный по pdf файлу вариант и ищем причины ошибок¶
J.tab1fromtxt(txtfile_path, csvfilename) #
Вторая таблица показала только эту строчку:¶
J.tab2fromtxt(txtfile_path, csvfilename)
Для третьей таблицы тоже не понадобились никакие правки
J.tab3fromtxt(txtfile_path, csvfilename)
Запустим парсер, для этого¶
Раскоментируем строки:
# Было
#csvfile_path = csvfolder + '\\3aug2\\' + csvfilename
#self.tocsv(t3, csvfile_path)
print t3
# Стало
csvfile_path = csvfolder + '\\3aug2\\' + csvfilename
self.tocsv(t3, csvfile_path)
#print t3
И запустим выполнение для каждого файла¶
Примечание: папки для записи результатов были созданы вручную заранее, нам здесь нужно было лишь отредактировать в сетодах эементы пути '\1aug2\', '\2aug2\', '\3aug2\'
# Запускаем на выполнение
J.tab1fromtxt(txtfile_path, csvfilename)
J.tab2fromtxt(txtfile_path, csvfilename)
J.tab3fromtxt(txtfile_path, csvfilename)
Проаверяем в папках, размер файлов почти в два раза меньше, так и должно быть, столбцов-то с суммами нет.
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий