Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

backslash dans arboresence dans mysql

4 réponses
Avatar
rufus larondelle
bonjour,

Je suis en pleine phase d'apprentissage, et j'ai écrit le truc suivant:

import os
import MySQLdb
db = MySQLdb.connect(host="localhost", user="root",passwd="",db="JOJO")
cursor = db.cursor()

for root,dirs,files in os.walk("d:\\truc"):
for fi in files:
comple = os.path.join(root,fi)
compe2=""
for j in comple:
if j =="\\":
compe2+="\\\\"
else:
compe2+=j

cursor.execute("""INSERT INTO mp3_selon_dir_list
(path,filename,tot_filename,kind_of_file) VALUES (\"""" + root + """\",\""""
+fi+"""\",\""""+compe2+"""\",\""""+fi[-3:]+"""\")""")



ca sert a mettre une arborescense de fichier dans une base de donnée. Ma
question est de savoir si il y à une notation plus propre possible pour les
\ que je doit doubler (ca en fait donc 4....) sinon je me retrouve sans \
dans ma base de donnée.

merci.

Claude

4 réponses

Avatar
Tibi
rufus larondelle wrote:
ca sert a mettre une arborescense de fichier dans une base de donnée. Ma
question est de savoir si il y à une notation plus propre possible pour
les que je doit doubler (ca en fait donc 4....) sinon je me retrouve
sans dans ma base de donnée.


Cher M. larondelle...

Tu peux utiliser la notation suivante: r'C:temptruc'

Avatar
rufus larondelle

Tu peux utiliser la notation suivante: r'C:temptruc'



merci, ca va effectivement aider (!) yapluka essayer.

Avatar
Gilles Lenfant
"rufus larondelle" a écrit dans le message de
news:cchlmi$3e2$
bonjour,

Je suis en pleine phase d'apprentissage, et j'ai écrit le truc suivant:

import os
import MySQLdb
db = MySQLdb.connect(host="localhost", user="root",passwd="",db="JOJO")
cursor = db.cursor()

for root,dirs,files in os.walk("d:truc"):
for fi in files:
comple = os.path.join(root,fi)
compe2=""
for j in comple:
if j =="":
compe2+="\"
else:
compe2+=j

cursor.execute("""INSERT INTO mp3_selon_dir_list
(path,filename,tot_filename,kind_of_file) VALUES ("""" + root +
"""",""""

+fi+"""",""""+compe2+"""",""""+fi[-3:]+"""")""")




En jetant un coup d'oeil dans la doc de MySQLdb, on se rend compte qu'il y a
bien plus simple à faire.
En effet, en utilisant la notation suivante, on utilise automatiquement les
dictionnaires de conversion de types (python <-> SQL) intégrés.

http://www.python.org/peps/pep-0249.html

En remplaçant le corps de la seconde boucle par ceci...

fext = fi.split(.)[-1]
cursor.execute("""INSERT INTO mp3_selon_dir_list
(path,filename,tot_filename,kind_of_file) VALUES
("%(root)s", "%(fi)s", "%(comple)s", "%(fext)s")"""
% locals())

Voila

Avatar
Gilles Lenfant
"Gilles Lenfant" a écrit dans le message de
news:cd2uue$nvn$

"rufus larondelle" a écrit dans le message de
news:cchlmi$3e2$
bonjour,

Je suis en pleine phase d'apprentissage, et j'ai écrit le truc suivant:

import os
import MySQLdb
db = MySQLdb.connect(host="localhost", user="root",passwd="",db="JOJO")
cursor = db.cursor()

for root,dirs,files in os.walk("d:truc"):
for fi in files:
comple = os.path.join(root,fi)
compe2=""
for j in comple:
if j =="":
compe2+="\"
else:
compe2+=j

cursor.execute("""INSERT INTO mp3_selon_dir_list
(path,filename,tot_filename,kind_of_file) VALUES ("""" + root +
"""",""""

+fi+"""",""""+compe2+"""",""""+fi[-3:]+"""")""")




En jetant un coup d'oeil dans la doc de MySQLdb, on se rend compte qu'il y
a

bien plus simple à faire.
En effet, en utilisant la notation suivante, on utilise automatiquement
les

dictionnaires de conversion de types (python <-> SQL) intégrés.

http://www.python.org/peps/pep-0249.html

En remplaçant le corps de la seconde boucle par ceci...

fext = fi.split(.)[-1]
cursor.execute("""INSERT INTO mp3_selon_dir_list
(path,filename,tot_filename,kind_of_file) VALUES
("%(root)s", "%(fi)s", "%(comple)s", "%(fext)s")"""
% locals())

Voila


Oups...
Je corrige la dernière instruction...

cursor.execute("""INSERT INTO mp3_selon_dir_list
(path,filename,tot_filename,kind_of_file) VALUES
("%(root)s", "%(fi)s", "%(comple)s", "%(fext)s")""",
locals())