pb avec la base de registres

pb avec la base de registres - Python - Programmation

Marsh Posté le 29-04-2008 à 13:43:28    

Bonjour je debute en python, et parallelement à mon apprentissage
à l'aide de "apprendre à programmer en Python", j'essaye de l'utiliser dans le cadre de mon boulot.
 
J'essaye donc le script suivant:
Pour info je souhaite créer une entrée dans la base de registres de Windows XP sur plusieurs postes.
Les postes sont resneignés dans un fichier texte.
 
Mon script:
 

Code :
  1. import _winreg
  2. file = open("C:\sample.txt" )
  3. for host in file.xreadlines():
  4.     rReg = _winreg.ConnectRegistry(host, _winreg.HKEY_LOCAL_MACHINE)
  5.     rKey = _winreg.CreateKey(rReg, 'Software\\monprogramme')
  6.     _winreg.SetValueEx(rKey, 'test', 0, _winreg.REG_EXPAND_SZ, 'coucou !')
  7.     _winreg.CloseKey(rReg)


 
Là ou je bloque c'est que visiblement ma variable host n'est pas reprise dans ma boucle for.
j'ai le message d'erreur suivant:
 

Code :
  1. Traceback (most recent call last):
  2.   File "C:\APPLI\Python25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
  3.     exec codeObject in __main__.__dict__
  4.   File "C:\Downloads\download\Scripts\python\Script24.py", line 6, in <module>
  5.     rReg = _winreg.ConnectRegistry(host, _winreg.HKEY_LOCAL_MACHINE)
  6. WindowsError: [Error 53] Le chemin réseau n'a pas été trouv


 
Pourtant si je test le code suivant:
 
 

Code :
  1. import _winreg
  2. file = open("C:\sample.txt" )
  3. for host in file.xreadlines():
  4.     print host


 
je récupère bien à chaque "print" un poste différent.
 
J'avoue que je seche un peu

Reply

Marsh Posté le 29-04-2008 à 13:43:28   

Reply

Marsh Posté le 29-04-2008 à 16:10:10    

Et lire les messages d'erreur, c'est possible? Non parce que le message d'erreur il ne dit absolument pas que "host n'est pas reprise dans [ta] boucle for", il dit que le chemin réseau est invalide/que l'hôte demandé n'a pas été trouvé [:petrus75]


Message édité par masklinn le 29-04-2008 à 16:13:03

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 29-04-2008 à 17:10:19    

sauf que si je remplace host par le nom de ma machine le script fonctionne.
Le script fonctionne si je renseigne une variable host avec le nom de ma machine.
Le problème n'est présent qu'en utilisant la boucle for....


Message édité par Portanoo92 le 29-04-2008 à 17:11:50
Reply

Marsh Posté le 29-04-2008 à 18:55:33    

Et tu en conclus quoi?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 30-04-2008 à 12:35:56    

Merci de ton aide....
 
si j'avais reussi à en conclure qq chose je ne serais pas sur le forum a demander un coup de main.

Reply

Marsh Posté le 30-04-2008 à 12:37:57    

[:prozac]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 06-05-2008 à 16:15:54    

Bon concernant mon debut de script j'ai trouvé le pb:
 
il fallait taper ceci:
 

Code :
  1. import _winreg
  2. file = open("C:\sample.txt" )
  3. for strComputer in file.readlines():
  4.     strComputer = strComputer.strip("\n" )
  5.     oReg = _winreg.ConnectRegistry(strComputer, _winreg.HKEY_LOCAL_MACHINE)
  6.     oKey = _winreg.CreateKey(oReg, 'Software\\monprogramme')
  7.     _winreg.SetValueEx(oKey, 'test', 0, _winreg.REG_EXPAND_SZ, 'coucou !')
  8.     _winreg.CloseKey(oReg)


 
Merci à Masklinn pour ces commentaires très constructifs, et surtout d'une grande aide :-)


Message édité par Portanoo92 le 06-05-2008 à 16:16:10
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed