Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gust.php

Python MySQL

Recommended Posts

Prezados, bom dia!

Estou iniciando no python fazendo o seguinte: Tenho um diretório com diversos arquivos, esses arquivos PDFs estão com a seguinte nomenclatura: 0001818.01.2014.pdf. Esses arquivos estão assim porque estão levando o numero de um processo. Eu preciso listar todos esses arquivos, procurar na tabela processo se existe um processo com esse numero e depois gravar na tabela documento, o ID desse processo, a DATA, o NOME DO ARQUIVO e o ARQUIVO. Estou tentando assim:

#!/usr/bin/python3

import glob
import base64
import os
import datetime
import MySQLdb

today = datetime.datetime.today()
# Open database connection
db = MySQLdb.connect("localhost","root","senha","banco" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

os.chdir('arq')
for file in glob.glob('*.pdf'):
  processo = file[:-4]
  cursor.execute("SELECT XPROCESSO FROM D_PR_DESDOBRAMENTOS WHERE NUMERO = '%s'" % (processo))
  proc = file
  data = cursor.fetchone()
  print ("ID DO PROCESSO : %s " % data)
  tamanho = os.path.getsize('%s' % (proc))
  print ("TAMANHO : %d " % tamanho)
 
  with open('%s' % (proc), 'rb') as f:
       blob = base64.b64encode(f.read())
       cursor.execute('INSERT INTO D_PR_DOCUMENTOS (XPROCESSO, \
           DATA, NOME_ORIGINAL, \
           PAGINA, DOC_BLOB, \
           TAMANHO) \
           VALUES ("%x", "%s", "%s", "%s", "%s", "%s")' % \
           (data, today, proc, 1, blob, tamanho))

# disconnect from serve
cursor.close()
 

O erro esta acontecendo aqui: VALUES("%x" .... Acontece o seguinte:

Traceback (most recent call last):
  File "./loadfile.py", line 33, in <module>
    (data, today, proc, 1, blob, tamanho))
TypeError: %x format: a number is required, not tuple
 

Pesquisando na net fui recomendado a colocar tudo como string "%s", assim ate que funciona, só que ele pega o ID do PROCESSO e tenta inserir no banco assim:

ID CORRETO: 823

Ele tenta inseriri isso: '(823L)'

Ai é claro que ocorre um erro. Agora, estou achando engraçado, pq em todos os outros campos, no log do mysql eles aparecem perfeitos, sem problema nenhum, só no campo XPROCESSO que é o ID que fica assim ...

Alguem ai tem alguma ideia ????

Agradeço ajudas ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.