Nouveau sur python, problème de debugging

Bonjour/Bonsoir

Je suis nouveau sur python et je voudrais créer un petit programme qui me permet de changer l’adresse mac de ma raspberry pi zero w.

J’ai déjà commencé mon code mais je bute sur ce problème lors de l’insertion de l’adresse mail sur la console.

Capture

Partie du code incriminé :

def change_mac_adress():
# Check current working directory.
retval = os.getcwd()
# Now change the directory for find bdaddr
os.chdir(locali_of_bdaddr)
# Check current working directory.
retval = os.getcwd()
time.sleep(1)
# All exe of command.
os.system(make)
time.sleep(1)
a, b, c, d, e, f = input(« Entrez la MAC address separated by space : »).split()
adress_mac = (a + ‹ : › + b + ‹ : › + c + ‹ : › + d + ‹ : › + e + ‹ : › + f)
print(adress_mac)
command_mac_adress = (« sudo ./bdaddr -i hci0 -r » + adress_mac)
print(command_mac_adress)
os.system(command_mac_adress)
time.sleep(1)
os.system(reset_hci_device)
time.sleep(1)
os.system(restart_bluetooth_service)
print(« Reboot terminer »)
time.sleep(1)
os.system(check)

hello,

a priori ton problème vient du début de ton code ( File ", line 1 … non publié )
sinon en récupérant ton code j’ai tester le code suivant et ça fonctionne …

#!/usr/bin/env python3
# coding: utf-8

import os
import time

def change_mac_adress():
# Check current working directory.
  retval = os.getcwd()
# Now change the directory for find bdaddr
  os.chdir("/home/pi/bdaddr")
# Check current working directory.
  retval = os.getcwd()
  time.sleep(1)
  print(retval)
  os.system("./bdaddr -i hci0")
  
  a, b, c, d, e, f = input(" Enter MAC address separated by space : ").split()
  address_mac = (a + ":" + b + ":" + c + ":" + d + ":" + e + ":" + f)
  print(address_mac)
  os.system("sudo ./bdaddr -i hci0 -r " + address_mac)

while True:
   print ("1) changer l'adresse MAC")
   print ("2) juste pour tester le test (!) ")
   print ("3) quitter")

   rep = input("entrer votre choix :")

   if rep == "1":
      change_mac_adress()
   elif rep == "2":
      print("ok le elif fonctionne ! ")
   elif rep == "3":
      print("fini")
      exit(0)
   else:
      print("t as saisie nimp ...")

PS : pour afficher le code formaté il faut saisir au début et a la fin 3 quotes « inversée » touche 7 è avec alt gr …

Ok merci je cherchais comment faire :+1:

Du coup voila le tout :

#!/usr/bin/env python
import time
import os


# All command.
reset_hci_device = 'sudo hciconfig hci0 reset'
restart_bluetooth_service = 'sudo systemctl restart bluetooth.service'
make = 'cd bdaddr && make'
locali_of_bdaddr = '/home/pi/bdaddr'
check = './bdaddr -i hci0'


# Creation of menu
def mainMenu():
    print("1. Change adresse Mac")
    print("2. Verification de l'adresse Mac")

    try:
        selection = int(input("Entrez votre choix: "))
        if selection == 1:
            change_mac_adress()

        elif selection == 2:
            verification_of_mac_adress()

        else:
            print("Choix invalide")
            mainMenu()
    except ValueError:
        print("Choix Invalide")


# Part : Change MAC adress
def change_mac_adress():
    # Check current working directory.
    retval = os.getcwd()

    # Now change the directory for find bdaddr
    os.chdir(locali_of_bdaddr)

    # Check current working directory.
    retval = os.getcwd()
    time.sleep(1)

    # All exe of command.
    os.system(make)
    time.sleep(1)
    a, b, c, d, e, f = input("Entrez la MAC address separated by space :").split()
    adress_mac = (a + ':' + b + ':' + c + ':' + d + ':' + e + ':' + f)
    print(adress_mac)
    command_mac_adress = ("sudo ./bdaddr -i hci0 -r" + adress_mac)
    print(command_mac_adress)
    os.system(command_mac_adress)
    time.sleep(1)
    os.system(reset_hci_device)
    time.sleep(1)
    os.system(restart_bluetooth_service)
    print("Reboot terminer")
    time.sleep(1)
    os.system(check)


# Part : Verification of mac adress
def verification_of_mac_adress():
    # Check current working directory.
    retval = os.getcwd()
    print("Current working directory %s" % retval)
    # Now change the directory for find bdaddr
    os.chdir(locali_of_bdaddr)
    # Check current working directory.
    retval = os.getcwd()
    print("Directory changed successfully %s" % retval)
    time.sleep(1)
    # All exe of command.
    os.system(make)
    os.system(check)


mainMenu()

a part la ligne
command_mac_adress = ("sudo ./bdaddr -i hci0 -r" + adress_mac)
où il manque un espace :
command_mac_adress = ("sudo ./bdaddr -i hci0 -r " + adress_mac)
qui fait planter la commande …

et le os.system(make) qui n’est utile qu’une fois ( quand bdaddr n'est pas compilé) et ``` make = 'cd bdaddr && make'
qui pourrait être avec le path complet
``` make = ‹ cd /home/pi/bdaddr && make ›`
ok je chipote !

ça doit fonctionner :wink: