Bonjour @ tous.
J'ai développé un code en Python 3.5.2 que je dois utiliser sur un serveur fonctionnant par défaut sur la version 2.8 de Python.
Pour lancer ce code j'utilise un fichier PHP dont le code est le suivant :
Ce code a pour mission de traiter les fichiers ".xls", ".xlsx" et ".csv" présent dans le même répertoire que lui.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 echo '<pre>'; system("cmd /c cd /d D:/web/script/python"); system("cmd /c C:/Users/SIG-administrateur/AppData/Local/Programs/Python/Python35-32/python.exe D:/web/script/python/traitement_fichier_insee.py"); echo '</pre>';
Pour que cela fonctionne, j'utilise un certain nombre de modules appelées en début de code dont voici les quelques lignes du début:
Lorsque je lance ce code via IDLE Python 35-32, aucun problème tout fonctionne, le traitement va jusqu'au bout.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33 import os import xlrd,openpyxl,csv from openpyxl import Workbook from datetime import datetime import pandas as pd from collections import OrderedDict import psycopg2 from sqlalchemy import create_engine #Je récupère le répertoire courant cd=os.path.dirname(os.path.abspath(__file__)) #Date du jour now = datetime.now() dirs = os.listdir(cd) # Homogénéisation des noms de fichiers et extensions for file in dirs: #Traitement "xls" & "xlsx" if file.endswith(".xlsx") or file.endswith(".xls"): print(file) # Ouverture des xls sur l'onglet "RTF" wbxls = xlrd.open_workbook(file) print(wbxls) nrows, ncols = 0, 0 while nrows * ncols == 0: sheet = wbxls.sheet_by_name(sheetok) nrows = sheet.nrows ncols = sheet.ncols print(sheet) print(nrows) print(ncols)
En revanche lorsque je le lance via PHP, le print(wbxls) ne me renvoi rien puisque le traitement s'arrête avant.
J'ai l'impression que le fait de le lancer en PHP l'empêche d'utiliser correctement le module xlrd.
Auriez-vous une piste qui me permettrait de lancer correctement mon py ?
En vous remerciant par avance.
Geo-x
Partager