Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1626 Le 01/08/2013, à 09:16

Rolinh

Re : /* Topic des codeurs [8] */

Ouais, ça ne me plaisait pas tant non plus. Je n'ai pas compris pourquoi il ignorait 'metadata' puisque je ne le vois pas. En revanche, j'ai un attribut supplémentaire généré par SQLAlchemy (_sa_instance_state) que je dois sauter. Du coup, j'ai fait comme ça finalement:

attrs = [x for x in obj.__dict__.keys() if x != '_sa_instance_state']

Hors ligne

#1627 Le 01/08/2013, à 13:16

grim7reaper

Re : /* Topic des codeurs [8] */

Eclipse a écrit :

Le commentaire de Commetre est vide.

roll
On dirait une traduction à grand coup de replace

Hors ligne

#1628 Le 01/08/2013, à 13:18

Rolinh

Re : /* Topic des codeurs [8] */

lol

Mais... t'utilises Eclipse toi??

Hors ligne

#1629 Le 01/08/2013, à 13:36

The Uploader

Re : /* Topic des codeurs [8] */

Premère réaction :
C'est qui Commete ? Quelqu'un qui sait pas écrire Comète ?
Et puis j'ai vu le r, et le t manquant.

Dernière modification par The Uploader (Le 01/08/2013, à 13:36)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1630 Le 01/08/2013, à 14:35

Elzen

Re : /* Topic des codeurs [8] */

Hej les gens !

Ça m'a prit, comme ça, ce matin, juste pour le fun. Si vous avez des remarques, elles seront les bienvenues (là-bas si possible ^^)

Hors ligne

#1631 Le 01/08/2013, à 14:46

grim7reaper

Re : /* Topic des codeurs [8] */

Rolinh a écrit :

lol

Mais... t'utilises Eclipse toi??

Pour le coup, je dois faire un peu de Java, et après avoir fait de la résistance avec Vim (ou Emacs avant) + Scons j‘en suis venu à la conclusion que Java a été conçu pour rendre douloureuse et consommatrice de temps la moindre tâche (renommer une classe, déplacer un fichier, renommer un package, etc le moindre truc te demande de modifier trouzmille fichiers ça c’est super lourd -_-) que tu oses effectuer en dehors d‘un IDE bloated.
Clairement, Java n‘a jamais été pensé pour être utilisé en dehors d’un IDE. Les mecs ont pensé bloated dès le début : «  Hé les gars, on va faire un langage lourd, et pour que le confort d‘utilisation soit équivalent à langage normal + éditeur de texte il faudra absolument utiliser des environnements très lourds. ». Et encore, je ne mentionnerais pas JEE (bon j’en fais pas là, ça va), car ce truc est monstrueux…
Bon Java s’est pas mal amélioré au fils des années : amélioration du GC, de la JVM, depuis Java 7 on peut enfin travailler de manière agréable et moderne avec des fichier (pas besoin d’instancier quarante douze objets pour lire un fichier, on peut faire du glob, renommer un fichier de manière portable en une ligne, … c’est pas trop tôt…), et Java 8 va apporter du fonctionnel plus une API pour le temps enfin fonctionnelle (ça va faire des années que 80% de l’API de Java pour le temps est déprécié…).
Par contre il traîne encore ses gamelles, dont celle-là : quasi inutilisable de manière comforable en dehors de Eclipse, Netbean ou assimilé.

Hors ligne

#1632 Le 01/08/2013, à 15:07

Rolinh

Re : /* Topic des codeurs [8] */

Ouep, je suis d'accord avec toi et étais arrivé aux mêmes conclusions. Sauf que si en Java je dois coder, je préfère Netbeans à Eclipse (je trouve l'organisation des menus bien plus claire). Et après avoir passé un semestre entier sur un projet de groupe en JEE6 => je ne veux plus jamais entendre parler de ce truc! En fait, ça a produit le même effet sur les 5 membres du groupe... Au début, on voulait publier les sources mais comme ça nous les pétaient tellement, on a fini par coder à l'arrache et on a maintenant trop honte de certaines parties du code source pour le publier... Et d'ailleurs, j'ai pas envie d'un boulot où faut coder en Java (ce qui est bête c'est que la grande majorité des postes de développeurs dans ma région sont pour du Java et C#/.NEt dans une moindre mesure... Le pire étant quand ces trucs sont combiné à des bases de données Oracle ou MS SQL...).

Hors ligne

#1633 Le 01/08/2013, à 16:01

grim7reaper

Re : /* Topic des codeurs [8] */

Rolinh a écrit :

Sauf que si en Java je dois coder, je préfère Netbeans à Eclipse (je trouve l'organisation des menus bien plus claire).

Je ne connais pas trop Netbean, mais d’après ce que j’avais vu les deux sont plus ou moins gros, lent et consommateur de RAM (lequel des deux étant le pire changeant au gré des versions). Mais possible que les menu soient mieux foutu, en effet.

Rolinh a écrit :

comme ça nous les pétaient tellement, on a fini par coder à l'arrache

Jme dit que ça fait peut-être la même chose à tout ceux qui font du JEE, et comme il y a masse de projet pro’ en JEE bah ça expliquerais qu’il y ai masse de projet pourri, bloated et codé avec les pieds.
Enfin, c’est juste une hypothèse ^^

Rolinh a écrit :

Et après avoir passé un semestre entier sur un projet de groupe en JEE6 => je ne veux plus jamais entendre parler de ce truc! En fait, ça a produit le même effet sur les 5 membres du groupe...

J’en ai jamais fait, ni à l’école ni au boulot.
Juste un peu, appris sur le tas et à la volée (un truc avec du JEE, Flex, Spring, MyBatis, SQL Server : j’ai dû me sortir un VM), pour filer un coup de main à quelqu’un mais c’est tout. Et ouais, on peut pas dire que ça m’ai donné envie…

Rolinh a écrit :

Et d'ailleurs, j'ai pas envie d'un boulot où faut coder en Java

Idem.
Bon pour du vrai Java nu, faut voir. Même si c’est loin d’être mon langage préféré, je reconnaît que c’est un langage qui a ses côtés sympa (mais dans le monde pro’ il est souvent enrobé de framework tous plus bloated les uns que les autres hmm).
Mais JEE, j’aimerais autant éviter ouais. En tout cas, ça me ferait mal de passer ma vie à faire ça.



Sinon, à propos de JEE, je suis tombé sur ce (vieux) texte récemment. J’ai bien rigolé big_smile

Hors ligne

#1634 Le 01/08/2013, à 20:15

Mindiell

Re : /* Topic des codeurs [8] */

J'utilise java+jsp au taf, c'est l'horreur. C'est basé au départ sur "tout le coeur" en java, et toute la partie présentation en jsp. Les mecs s'y connaissaient, c'était bien parti. Puis, suite à des difficultés financières ou des "chefs" qui veulent s'en mettre plus dans les poches, on voit à certains endroits des mélanges arriver, du codage par du stagiaire (je ne leur jette pas la pierre, mais ils n'ont pas la même expérience hein).

Bref, je me suis récupéré une appli web codée en dépit du bon sens et à laquelle je suis obligé de toucher par petite touche si je veux pas tout faire péter (et ça pète régulièrement). Et en plus, les nouveaux "chefs", ben ils aimeraient que j'améliore et que je reprenne plein de trucs bien bien lourds (genre tout le coeur de la présentation), mais rapidement hein... Faut pas que ça pèse trop non plus, c'est pas une fonctionnalité qu'on peut vendre...   hmm

Bref, java => plus jamais ! pitié !

grim7reaper a écrit :

Sinon, à propos de JEE, je suis tombé sur ce (vieux) texte récemment. J’ai bien rigolé big_smile

Excellent, et malheureusement très très proche de la vérité big_smile

Dernière modification par Mindiell (Le 01/08/2013, à 20:23)

Hors ligne

#1635 Le 01/08/2013, à 20:22

The Uploader

Re : /* Topic des codeurs [8] */

En ce moment j'fais pas mal de bash (AUR, PKGBUILD, tout ça). Le mieux (c'est à dire le plus simple et le plus court) que j'ai trouvé pour vérifier la version minimale du kernel (pas celle donné par uname, c'est un package qui compile pour tous les kernels installés), c'est ça :

for _kernver in ${_kernvers}
do
[...]
  # BEGIN_TRUC_MOCHE
  _currkver=$(echo ${_kernver}|cut -d\- -f1|tr -d '.'| tr -d '[A-Z][a-z]')
  _currkver=$(echo ${_currkver}|cut -c 1-5)
  if [[ ${_currkver} -ge 3100 ]]; then
  # FIN_TRUC_MOCHE
    msg '2 of 4 - Applying patches: fix-build-with-linux-3.10.patch...'
    patch -p4 -i ${srcdir}/fix-build-with-linux-3.10.patch
  fi
  make ...
done

(les deux commentaires ne sont pas dans le code source)

Il y a d'autres solutions, bien sûr : http://stackoverflow.com/questions/4023 … ion-format

Java c'est peut-être moyen, mais bash c'est tellement.... pas maintenable, en fait. neutral
Enfin surtout du fait que c'est à la base une chaine de caractères, tant que le format de la version de linux change pas trop ça va, mais c'est clairement fragile, quelle que soit la solution adoptée.

Dernière modification par The Uploader (Le 01/08/2013, à 20:27)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1636 Le 02/08/2013, à 10:07

Elzen

Re : /* Topic des codeurs [8] */

Bon, là je ne pige pas.

Je bosse sur le gestionnaire de calendrier de Touhy, donc un truc qui lit les fichiers au format icalendar, qui transforme les différents événements en objets, et qui manipule des listes de ces objets.

J'veux faire une méthode qui vérifie si la liste d'événements telle que manipulée par le logiciel est la même que celle enregistrée dans le fichier ou pas, pour savoir si je dois afficher l'habituelle petite étoile dans le titre et balancer un warning à la fermeture ou pas. Donc je stocke deux listes distinctes, celle issue du fichier et celle qui est manipulée.

En gros, l'initialisation de ces deux listes ressemble à ça :

self.fileevents = icalendar.read(self.location)
self.curevents = self.fileevents[:]

Donc après, je teste juste si les deux listes sont identiques ou pas, okay, tout baigne. Sauf que je rajoute la possibilité de couper/coller les événements, donc éventuellement, l'ordre dans curevents peut varier (si on retire un événement qui était en début de liste et qu'on le remet en fin). Donc je me dit qu'il faudrait tester l'égalité entre les listes sans tenir compte de l'ordre. Ça, c'est un boulot pour un set, normalement.

Ouais, sauf que :

print self.curevents == self.fileevents,set(self.curevents) == set(self.fileevents)

m'affiche :

True False

Wait, what? yikes

Hors ligne

#1637 Le 02/08/2013, à 10:18

Rolinh

Re : /* Topic des codeurs [8] */

grim7reaper a écrit :

Jme dit que ça fait peut-être la même chose à tout ceux qui font du JEE, et comme il y a masse de projet pro’ en JEE bah ça expliquerais qu’il y ai masse de projet pourri, bloated et codé avec les pieds.
Enfin, c’est juste une hypothèse ^^

Détrompes-toi, il y en a qui ne jurent que par JEE (sans doute car ils n'ont rien connu d'autre car quand tu leur dis que c'est de la m**** à grand coup d'exemples pratiques, il te disent que c'est bien mieux que JSP...). En général, l'argument principal avancé c'est que c'est facilement scalable, robuste et très répandu (comprendre: on trouve facilement des consultants pour venir nous dépatouiller sur des trucs qui ne marchent pas (mais qui ne seraient certainement pas un problème avec un autre framework ceci dit...)). En tout cas, personnellement, la complexité de la chose m'a juste sidéré et je comprend qu'il faille être un spécialiste pour pouvoir se dépatouiller à tous les coups avec le bousin.

grim7reaper a écrit :

J’en ai jamais fait, ni à l’école ni au boulot.
Juste un peu, appris sur le tas et à la volée (un truc avec du JEE, Flex, Spring, MyBatis, SQL Server : j’ai dû me sortir un VM), pour filer un coup de main à quelqu’un mais c’est tout. Et ouais, on peut pas dire que ça m’ai donné envie…

Pour notre projet, on utilisait Glassfish comme serveur d'application, Jenkins pour l'intégration continue, git (grâce à moi qui ai poussé pour qu'on puisse s'épargner svn...), Redmine pour la coordination du projet, JAX-RS pour l'API RESTful, Maven pour les builds, Netbeans comme IDE (bah oui, déjà qu'il a fallu un temps considérable pour mettre en place le serveur, c'est pas comme si chaque dev pouvait utiliser l'IDE qu'il voulait puisqu'il fallait faire des configurations très précises sur NetBeans), MySQL pour la DB, Checkstyle et Sonar pour l'analyse statique. Et bien sûr, des prises de tête pas possibles à éditer des fichiers XML pour les configs (bah oui, tout le monde sait que l'XML c'est hyper user-friendly pour des fichiers de configuration...) et je ne parle même pas de la mise en place des tests unitaires (via JUnit)... Rien que le fonctionnement des EJB me rendait malade... Et t'as pas l'impression de coder mais de générer du code avec ton IDE. Au final, il y a peut-être 5-10% du code qui a demandé matière à réflexion une fois le DOM établi. Ah, et je ne parle pas du serveur auquel il a fallu passer de 512M à 4G de RAM pour qu'il ne pète pas à la gueule (lorsqu'un commit était pushé sur le serveur, ça déclenchait une build et faisait monter le taux d'utilisation de RAM à 3.5G... Pour un tout petit projet JEE6... Et évidemment, Jenkins, Sonar et Glassfish plantaient en cœur à ce moment là... (seul Redmine tournait encore...)). Quand je compare à mon serveur qui a un load entre 300 et 500M alors qu'il fait tourner plusieurs sites, certains en Rails et d'autre en PHP, ça donne matière à réflexion (et là, le Javaiste pur va me dire que tu peux configurer la RAM à dispo de tes applications Java: merci, je suis au courant).

grim7reaper a écrit :

Bon pour du vrai Java nu, faut voir. Même si c’est loin d’être mon langage préféré, je reconnaît que c’est un langage qui a ses côtés sympa.

Je trouve aussi que Java a quelques concepts assez sympas (la visibilité des méthodes/attributs d'une classe par exemple) mais au final, quand je fais du Java j'ai toujours l'impression de demander à mon IDE de générer du code à ma place... Et puis c'est tellement verbeux (cf les accesseurs par exemple) que ça me saoule. Un vrai bol d'air frais quand tu reviens sur Ruby et que tu vois à quel point tu définis simplement des accesseurs.

grim7reaper a écrit :

Sinon, à propos de JEE, je suis tombé sur ce (vieux) texte récemment. J’ai bien rigolé big_smile

Moi aussi. big_smile Et effectivement, je ne pense pas non plus que ça soit très loin de la réalité...

The Uploader a écrit :

Java c'est peut-être moyen, mais bash c'est tellement.... pas maintenable, en fait. neutral

En même temps, les shells ne sont pas conçu pour écrire des gros programmes hein (et je ne considère même pas les performances des langages shells qui sont désastreuses).. C'est pour les petits scripts qui dépannent bien. Tu ne peux pas comparer l'un avec l'autre.

Hors ligne

#1638 Le 02/08/2013, à 10:20

grim7reaper

Re : /* Topic des codeurs [8] */

Elzen a écrit :

Ça, c'est un boulot pour un set, normalement.

Non, pas vraiment.
Le boulot d’un set c’est avoir un ensemble d‘éléments uniques. Pas de faire des comparaisons sans tenir compte de l’ordre.
Bon, question bête : tes objets respectent-ils le contrat de set ? :

http://docs.python.org/2/library/stdtypes.html#set a écrit :

The elements of a set must be hashable.

http://docs.python.org/2/glossary.html#term-hashable a écrit :

    An object is hashable if it has a hash value which never changes during its lifetime (it needs a __hash__() method), and can be compared to other objects (it needs an __eq__() or __cmp__() method). Hashable objects which compare equal must have the same hash value.

    Hashability makes an object usable as a dictionary key and a set member, because these data structures use the hash value internally.

    All of Python’s immutable built-in objects are hashable, while no mutable containers (such as lists or dictionaries) are. Objects which are instances of user-defined classes are hashable by default; they all compare unequal (except with themselves), and their hash value is their id().

Le problème viendrait pas de là ?
Elle ressemble à quoi ta classe ?

Hors ligne

#1639 Le 02/08/2013, à 10:22

Rolinh

Re : /* Topic des codeurs [8] */

@Elzen: la virgule peut-être? tongue

Python 3.3.2 (default, May 21 2013, 15:40:45) 
[GCC 4.8.0 20130502 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 1
>>> b = 1
>>> c = 2
>>> d = 3
>>> a == b, c == d
(True, False)

EDIT: j'ai lu trop vite, autant pour moi. C'est effectivement bizarre.

Dernière modification par Rolinh (Le 02/08/2013, à 10:24)

Hors ligne

#1640 Le 02/08/2013, à 10:23

The Uploader

Re : /* Topic des codeurs [8] */

Rolinh a écrit :

En même temps, les shells ne sont pas conçu pour écrire des gros programmes hein (et je ne considère même pas les performances des langages shells qui sont désastreuses).. C'est pour les petits scripts qui dépannent bien. Tu ne peux pas comparer l'un avec l'autre.

Oui, mais quand tu commences à avoir pas mal de paquets sur l'AUR sous le coude, tu commences à avoir envie d'utiliser autre chose que bash/sh pour ça.
Après c'est sûr que c'est hyper utile pour faire des scripts qui dépannent (mais quand le script devient un "vrai" programme, je préfère passer à Ruby, voire le faire en Ruby dès le début).

Dernière modification par The Uploader (Le 02/08/2013, à 10:26)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1641 Le 02/08/2013, à 10:29

Rolinh

Re : /* Topic des codeurs [8] */

@The Uploader: je maintiens aussi plusieurs paquets sur AUR mais pour ce que ça demande comme logique, les scripts shells vont très bien. Bon, dans le cas d'un PKGBUILD pour un kernel ou ton paquet nvidia-96xx-all c'est un peu plus compliqué mais ça reste dans le raisonnable je trouve. Je ne défend pas bash hein, je trouve ça vraiment affreux mais là je trouve que c'est typiquement un cas où son utilisation ne dérange pas.

Hors ligne

#1642 Le 02/08/2013, à 10:30

Elzen

Re : /* Topic des codeurs [8] */

Boulet, j'avais simplement oublié d'implémenter __hash__ ><

M'en suis rendu compte à peu près en même temps que toi, grim ; merci ^^

grim7reaper a écrit :

Non, pas vraiment.
Le boulot d’un set c’est avoir un ensemble d‘éléments uniques. Pas de faire des comparaisons sans tenir compte de l’ordre.

Disons que ce n'est pas la fonction de base d'un set, mais que c'est comme ça qu'est définie l'égalité sur des sets, ce qui est exactement ce que je recherche (d'ailleurs, j'n'ai pas dit « c'est le boulot d'un set », mais « c'est un boulot pour un set »). Après, si tu as une solution sémantiquement plus correcte, j'écoute ^^

Dernière modification par Elzen (Le 02/08/2013, à 10:32)

Hors ligne

#1643 Le 02/08/2013, à 11:58

Shanx

Re : /* Topic des codeurs [8] */

J’ai un drôle de problème avec python et sqlite3, je veux bien de l’aide. Je voudrais lister toutes les tables d’une base de donnée pour pouvoir les ouvrir. Mes tables sont foo1, foo2, foo3, etc. (je ne connais pas leur nom avant de lancer le code). Mon code est (j’ai remplacé l’ouverture de la table par un print) :

cur.execute("SELECT name FROM sqlite_master")
for table in cur:
     print("The table is", table[0])

Le retour attendu est :

The table is foo1
The table is foo2
The table is foo3
…

Mais à la place j’ai un simple :

The table is foo1

Si je change le code pour :

cur.execute("SELECT name FROM sqlite_master")
print(cur.fetchone())
for table in cur:
     print("The table is", table[0]

Dans ce cas le retour est :

(foo1,)
The table is foo2

J’avoue que je sèche totalement sur le pourquoi du comment, donc si quelqu’un a une piste je suis preneur.

Dernière modification par Shanx (Le 02/08/2013, à 11:59)


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#1644 Le 02/08/2013, à 12:32

xapantu

Re : /* Topic des codeurs [8] */

Method Not Implemented

POST to /post.php not supported.
Koala Web Server/2.4.0 (FreeBSD 6.2) Server at forum.ubuntu-fr.org Port 80

En voulant poster un message ici… roll (oui, oui, je vais aller me plaindre aux autorités compétentes

edit : bon, apparemment on n'a pas le droit aux ORDER BY …

Dernière modification par xapantu (Le 02/08/2013, à 12:37)

Hors ligne

#1645 Le 02/08/2013, à 12:34

xapantu

Re : /* Topic des codeurs [8] */

Là, comme ça, en lisant http://docs.python.org/2/library/sqlite3.html le truc qui me frappe c'est que dans l'exemple, l'itérateur semble retourné par l'execute directement :

>>> for row in c.execute('SELECT * FROM stocks'):
        print row

Dernière modification par xapantu (Le 02/08/2013, à 12:35)

Hors ligne

#1646 Le 02/08/2013, à 12:34

grim7reaper

Re : /* Topic des codeurs [8] */

Elzen a écrit :

Après, si tu as une solution sémantiquement plus correcte, j'écoute ^^

Faire un tri avant de comparer, mais c’est sûrement moins performant (mais au moins ça gère les doublons).
Comme dans ton cas tu ne sembles pas avoir de doublons, le set me semble être une bonne solution.

Hors ligne

#1647 Le 02/08/2013, à 12:49

Rolinh

Re : /* Topic des codeurs [8] */

xapantu a écrit :

(...)(FreeBSD 6.2) (...)

FreeBSD 6.2 n'est plus supporté depuis... mi-2008...

Hors ligne

#1648 Le 02/08/2013, à 13:06

Shanx

Re : /* Topic des codeurs [8] */

Toujours bloqué. Personne n’a une idée ? (ORDER BY ne change rien)


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#1649 Le 02/08/2013, à 13:31

grim7reaper

Re : /* Topic des codeurs [8] */

Bah, chezmoiçamarche© hmm :

$ sqlite3 test.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> SELECT name FROM sqlite_master;
t1
t2
t3
sqlite> 
$ ./toto.py 
('t1',)
('t2',)
('t3',)
$ cat toto.py 
#!/usr/bin/env python3

import sqlite3

conn = sqlite3.connect('test.db')
c = conn.cursor()
for row in c.execute('SELECT name FROM sqlite_master'):
    print(row)

Hors ligne

#1650 Le 02/08/2013, à 13:35

Shanx

Re : /* Topic des codeurs [8] */

Ben à la base, il me semble que ça marchait aussi ici. Et tout d’un coup, gros bug. hmm

Bon, j’ai trouvé une manière de faire. C’est plus lourd, mais ça contourne le problème :

cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
table = cur.fetchone()
while table:
    table_liste.append(table[0])
    table = cur.fetchone()

for table in table_liste:
    cur.execute("CREATE TABLE IF NOT EXISTS {} (date TEXT, type TEXT, zone TEXT, min REAL, max REAL, moyenne REAL)".format(table))

EDIT : d’ailleurs, si quelqu’un sait comment ouvrir une table existante sans passer par un CREATE IF NOT EXISTS, je suis preneur.

Dernière modification par Shanx (Le 02/08/2013, à 13:36)


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne