Vjn
Дек. 12, 2008 07:03:31
При чтении файла возникает ошибка
pywintypes.com_error: (-2147024882, ‘\315\345\344\356\361\362\340\362\356\367\355\356\357\340\354\377\362\350\344\353\377\347\340\345\360\370\345\355\350\377\356\357\345\360\340\366\350\350.’, None, None)
shiza
Дек. 12, 2008 07:15:43
что читаешь, какой файл?
код и ошибку полностью давай =)
Vjn
Дек. 12, 2008 07:43:31
Начну с того что питон у меня используется как интерпритатор в системе транспортировки..
Структура файла - текстовый файл(строки с разделителями выгруженная таблица). Размер файла 65521 Кб
Я подозреваю что ошибка связана с тем что файл большой
Если я читаю этот кусок - то всё нормально - но вот если весь файл то ошибка..
Кусок файла:
……………………………
301810017836|ФИО
301810017840|ФИО
301810017862|ФИО
301810022088|ФИО
301810022107|ФИО
301810017884|ФИО
301810022110|ФИО
301810017895|ФИО
301810022121|ФИО
301810017906|ФИО
……………………………….
shiza
Дек. 12, 2008 08:01:18
какой код читает этот файл?
Vjn
Дек. 12, 2008 08:05:36
Да. кстати забыл отметить, что я XML формирую здесь…
from Colvir import *
import re
import cssutil
import string
from string import split
fld = {}
fld = ‘FRMT’ # РНН
fld = ‘FIO’ # ФИО/Тип налогоплательщика
fld = ‘REZ’ # Признак резиденства
fld = ‘UCH’ # Постоянное учреждение
fld = ‘PIP’ # Признак ИП
fld = ‘NAMEIP’ # Наименование ИП
fld = ‘DATEREG’ # Дата гос. регистрации ИП
fld = ‘DATECLOSE’ # Дата прекращения деятельности ИП
fld = ‘DATEGOSREG’ # Дата гос. регистрации налогоплательщика
fld = ‘DATELAST’ # Дата последнего снятия с рег. учёта по месту нахождения
fld = ‘PRICH’ # Причина снятия с учёта
fld = ‘TYPEISK’ # Тип исключения из гос. реестра
fld = ‘DATEISK’ # Дата исключения из гос. реестра
fld = ‘DATENPRI’ # Дата начала приостановления
fld = ‘DATEOPRI’ # Дата окончания приостановления
packDS = inDs
msg = inDs
str_lst = re.findall('(?im)^.+$', msg)
outDs.clear()
outDs.addField('TRATTR', ftDataSet)
outDs.addField('BODY', ftString)
# Формирование выходного XML-ля.
import msxml2
import time
for ss in str_lst:
c=string.count(ss,'|')
if c<4:
outDs.append()
Doc=msxml2.DOMDocument()
root_node = Doc.createElement('MSG')
root_node.setAttribute('FORMAT', ‘RNN’)
root_node.setAttribute('SENDER', ‘CESNACLV000’)
root_node.setAttribute('RECIPIENT', ‘BDRNN’)
Doc.appendChild(root_node)
for ss in str_lst:
sl = split(ss, ‘|’)
node = Doc.createElement('RNNNAME')
root_node.appendChild(node)
for i in range(0, len(sl)-1):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(1, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
else:
outDs.append()
Doc=msxml2.DOMDocument()
root_node = Doc.createElement('MSG')
root_node.setAttribute('FORMAT', ‘RNN’)
root_node.setAttribute('SENDER', ‘CESNACLV000’)
root_node.setAttribute('RECIPIENT', ‘BDRNN’)
Doc.appendChild(root_node)
for ss in str_lst:
sl = split(ss, ‘|’)
node = Doc.createElement('RNNDATA')
root_node.appendChild(node)
for i in range(0, len(sl)-1):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(1, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(2, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(3, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(4, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(5, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(6, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(7, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(8, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(9, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(10, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(11, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(12, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(13, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
for i in range(14, len(sl)):
if fld.has_key(i):
node.setAttribute(fld, sl)
attrDS = outDs
attrDS.append()
attrDS = ‘tst’
attrDS = ‘CESNACLV000’
attrDS = ‘BDRNN’
outDs ='<?xml version=“1.0” encoding=“windows-1251”?>'+ Doc.xml
del root_node
del Doc
shiza
Дек. 12, 2008 08:35:47
а можно еще полный трейсбек ошибки =)
на какую строчку он ругается.
пока что я подозреваю, что происходит эта ошибка в msxml =)
Vjn
Дек. 12, 2008 08:40:58
не показывает на какую строку ругается…
просто сообщение:
pywintypes.com_error: (-2147024882, ‘\315\345\344\356\361\362\340\362\356\367\355\356\357\340\354\377\362\350\344\353\377\347\340\345\360\370\345\355\350\377\356\357\345\360\340\366\350\350.’, None, None)
дело в том что с файлом такой же структуры небольшого объёма всё отрабатывает как “часы”!
Vjn
Дек. 12, 2008 08:48:32
Да кстати система транспортировки записывает эти полученные файлы(сообщения) в базу поле для сообщения LONG RAW
shiza
Дек. 12, 2008 08:53:24
хм. вот в этой строчке
'\315\345\344\356\361\362\340\362\356\367\355\356\357\340\354\377\362\350\344\353\377\347\340\345\360\370\345\355\350\377\356\357\345\360\340\366\350\350.'
на самом деле написана ошибка, тока проблема тут с кодировкой, поэтому не фига не понятно.
shiza
Дек. 12, 2008 08:54:53
надобы это дело выполнить на системе, в которой msxml - английский, чтоб ошибку прочитать. =)