Hello,

Je suis débutant en python et en train de faire une application qui utilise notamment la librairie pandas.
J'imagine que j'ai du coder de façon sale et que ma version portable plus est moins souple.
J'ai l'impression qu'il n'arrive pas a lui faire fermer la boucle CUR.

J'utilise 2 versions de python:
- Python 3.5.3 + pandas (mon code fonctionne)
- Portable Python 3.2.5.1 + pandas (mon code ne fonctionne pas)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- coding: cp1252 -*-
import pandas as pd
import os
import pyodbc
 
cnx = pyodbc.connect('DRIVER={SQL Server};SERVER=xxxx;')
 
inputdir = 'xxxx\\Inputs'
 
for script in os.listdir(inputdir):
   with open(inputdir+'\\' + script,'r') as inserts:
        for statement in inserts:
            with cnx.cursor() as cur:
                data = pd.read_sql(statement,cnx)
                data.to_csv(''+ script +'.csv', sep=',')
                print(data)
                #cur.execute(statement)
                #data = pd.read_sql(sql, cnx)
cnx.close()
il me renvoi l'erreur suivante:
Traceback (most recent call last):
File "xxxx.py", line 15, in <module>
with cnx.cursor() as cur:
AttributeError: __exit__
Pourriez-vous me dépanner s'y il vous plait ?

ps: dans la version 3.5 que je mette un cnx.close() ou pas il s'en fiche.

Merci d'avance.