Je souhaite créer des fichiers qui porte le nom d'un composant propre au dossier portant le nom de ce même composant hors je n'y arrive pas et je ne sais pas si c'est réellement possible !
Sachant que la création des dossiers marche très bien mais pas celle des fichiers !
En espérant avoir été le plus claire possible par ailleurs je vous remercie d'avance pour toute aide / réponses / pistes que vous me donnerez, elles me seront précieuses !
try :
os.mkdir('.\\components')
except :
print("\n */!\* LE DOSSIER COMPONENT N'EST PAS VIDE */!\* \n")
for component in component_set :
try :
os.mkdir('.\\components\\{}'.format(component.name))
except :
print("\n */!\* LES SOUS-DOSSIERS COMPONENT NE SONT PAS VIDE */!\* \n")
for component in component_set :
try :
os.mkdir('.\\components\\{}\\c99'.format(component.name))
except :
os.rmdir('.\\components\\{}\\c99'.format(component.name))
os.mkdir('.\\components\\{}\\c99'.format(component.name))
for component in component_set :
with open('.\\components\\{}\\c99\\{}.c'.format(component.name,component.name), 'rw')
as mon_fichier.c:
with open('.\\components\\{}\\c99\\{}.h'.format(component.name,component.name), 'w')
as mon_fichier.h:
with open('.\\components\\{}\\c99\\{}_message.h'.format(component.name,component.name), 'w')
as mon_fichier_message.h:
#############################################################################
#Je vous transmet mon code en entier :
#############################################################################
import csv
import os
import sys
print(sys.argv)
class Component :
### Classe définissant un Composant par :
# - sa description
# - son nom
# - son address
def __init__ (
self,
description,
name,
address) :
self.description = description
self.name = name
self.address = address
self.logic_list = []
self.analog_list = []
class IO :
### Classe définissant un IO par :
# - son connector
# - son pin
# - sa fonction
def __init__ (
self,
connector,
pin,
function) :
self.connector = connector
self.pin = pin
self.function = function
class Logic :
### Classe définissant Logic par :
# - initial
# - invert
# - name
# - description
# - strength
def __init__ (
self,
initial,
invert,
name,
description,
strength,
io) :
self.initial = initial
self.invert = invert
self.description = description
self.name = name
self.strength = strength
self.io = io
class Analog :
### Classe définissant Analog par :
# - initial
# - cut
# - cut_raw
# - decimals
# - a
# - b
# - min
# - max
# - unit
# - description
# - name
# - strength
def __init__ (
self,
initial,
cut,
cut_raw,
decimals,
a,
b,
mini,
maxi,
unit,
name,
description,
strength,
io) :
self.initial = initial
self.cut = cut
self.cut_raw = cut_raw
self.decimals = decimals
self.a = a
self.b = b
self.mini = mini
self.maxi = maxi
self.unit = unit
self.description = description
self.name = name
self.strength = strength
self.io = io
component_set = set()
csv_list = []
#Récupère mes éléments du CSV et les stocks dans un "Dictionnaire"
with open(".//data.csv", newline='') as csvfile :
csv_reader = csv.DictReader(csvfile, delimiter=";")
for row in csv_reader :
component = ""
for existing_component in component_set :
if row['c.name'] == existing_component.name :
component = existing_component
if component == "" :
component = Component(
row['c.description'],
row['c.name'],
row['c.address'])
component_set.add(component)
io = IO(
row['io.connector'],
row['io.pin'],
row['io.function'])
if row['d.type'] == "Logic" :
logic = Logic(
row['initial'],
row['invert'],
row['d.description'],
row['d.name'],
row['d.strength'],
io
)
component.logic_list.append(logic)
elif row['d.type'] == "Analog" :
component.analog_list.append(Analog(
row['initial'],
row['cut'],
row['cut_raw'],
row['decimals'],
row['a'],
row['b'],
row['min'],
row['max'],
row['unit'],
row['d.description'],
row['d.name'],
row['d.strength'],
io
))
else :
assert 0, "Invalid value in 'type' column."
component_set.add(component)
print(len(component_set))
try :
os.mkdir('.\\components')
except :
print("\n */!\* LE DOSSIER COMPONENT N'EST PAS VIDE */!\* \n")
for component in component_set :
try :
os.mkdir('.\\components\\{}'.format(component.name))
except :
print("\n */!\* LES SOUS-DOSSIERS COMPONENT NE SONT PAS VIDE */!\* \n")
for component in component_set :
try :
os.mkdir('.\\components\\{}\\c99'.format(component.name))
except :
os.rmdir('.\\components\\{}\\c99'.format(component.name))
os.mkdir('.\\components\\{}\\c99'.format(component.name))
for component in component_set :
with open('.\\components\\{}\\c99\\{}.c'.format(component.name,component.name), 'rw')
as mon_fichier.c:
with open('.\\components\\{}\\c99\\{}.h'.format(component.name,component.name), 'w')
as mon_fichier.h:
with open('.\\components\\{}\\c99\\{}_message.h'.format(component.name,component.name), 'w')
as mon_fichier_message.h:
Le with open() sans bloc d'instruction derrière, ça plante non ?
Faut mettre quelque chose sinon ça doit lever une IndentationError d'après mes tests.
Si tu veux ne rien faire de spécial, tu peux écrire pass :
with open(...):
pass
Sinon les except sans indiquer l'exception à capturer, ça capture tout, il faut éviter ça parce que toutes les exceptions ne doivent pas de traiter de la même manière, et ça masque le traceback des exceptions que tu n'as pas traité.
- Edité par LoupSolitaire 23 janvier 2020 à 17:09:09
J'ai modif mon code entre temps en mettant le "pass" (merci quand meme ) mais du coup tu pense que c'est possible d'auto générer mes fichiers avec ça ou il existe une autre méthode que je ne connais pas ???
Parce que j'ai pas l'impression que ce soit viable avec le open()
Hop c'est bon du coup j'ai trouvé la solution je suis juste bête ^^
#Génère les fichiers .cpp , .hpp et _message.h dans chaque dossier "Qt" de chaque composant
for component in component_set :
with open('.\\components\\{}\\Qt\\{}.cpp'.format(component.name,component.name), 'w') :
pass
with open('.\\components\\{}\\Qt\\{}.hpp'.format(component.name,component.name), 'w') :
pass
with open('.\\components\\{}\\Qt\\{}_message.h'.format(component.name,component.name), 'w') :
pass
je pouvais juste pas mettre de "as" dans mon ouverture de fichier la demande d'aide est donc close merci pour ton implication LoupSolitaire
- Edité par LeBroSympa 27 janvier 2020 à 9:43:28
Jeune développeur en quête de connaissances ...
Création de fichiers PYTHON
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Jeune développeur en quête de connaissances ...
Blond, bouclé, toujours le sourire aux lèvres...
Jeune développeur en quête de connaissances ...
Blond, bouclé, toujours le sourire aux lèvres...
Jeune développeur en quête de connaissances ...