#python #command-line
Вопрос:
import subprocess
import optparse
def mac_changer(interface, mac_add):
subprocess.call("ifconfig" str(interface) " down", shell=True)
subprocess.call("ifconfig" str(interface) " hw ether " str(mac_add), shell=True)
subprocess.call("ifconfig" str(interface) " up", shell=True)
def get_args():
parser = optparse.OptionParser()
parser.add_option("-i", "--interface", dest="new_interface", help="Selects Interface")
parser.add_option("-m", "--MAC", dest = "new_mac", help="Changes the Mac Address")
(options, arguments) = parser.parse_args()
if not options.new_interface():
parser.error("No interface specified")
elif not options.new_mac:
parser.error("No Mac address found in command line")
return options
options = get_args()
mac_changer(options.interface, options.new_mac)
Я недавно работал над сменщиком mac, и он возвращает эту ошибку, хотя я не использую функцию str во всем коде, за исключением случаев, когда это необходимо.
Комментарии:
1.
str
Объект — это не то же самое, чтоstr
функция. В сообщении об ошибке говорится, что вы обрабатываете строку так, как если бы это была функция. В любом случае-какая строка выдает ошибку? Нам не нужно гадать.2.
if not options.new_interface:
должно сработать3. спасибо, что разъяснил мою глупую ошибку, Джоран :).