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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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