Форум сайта python.su
0
Здравствуйте натолкнулся на следующее
In [39]: hexx = r'\x80\x20\x00\x00'
In [40]: print hexx
\x80\x20\x00\x00
In [41]: listhex = [hexx]
In [42]: print listhex
['\\x80\\x20\\x00\\x00']
In [43]: print listhex[0]
\x80\x20\x00\x00
In [44]: print (listhex[0], listhex[0])
('\\x80\\x20\\x00\\x00', '\\x80\\x20\\x00\\x00')
In [45]: _edit = netsnmp.Varbind('.1.3.6.1.2.1.17.7.1.4.3.1.4', 1107, listhex[0] , 'octetstr')
In [46]: netsnmp.snmpset(_edit, Version = 2, DestHost=ip, Community=XXXXXXXXXXXXX)
Out[46]: 0
In [47]: _edit = netsnmp.Varbind('.1.3.6.1.2.1.17.7.1.4.3.1.4', 1107, '\x80\x20\x00\x00' , 'octetstr')
In [48]: netsnmp.snmpset(_edit, Version = 2, DestHost=ip, Community=XXXXXXXXXXXXXXXX)
Out[48]: 1
Офлайн
25
http://docs.python.org/reference/lexical_analysis.html#strings
String literals may optionally be prefixed with a letter ‘r’ or ‘R’; such strings are called raw strings and use different rules for interpreting backslash escape sequences.
Если и так не понятно то проверьте вариант с
_edit = netsnmp.Varbind('.1.3.6.1.2.1.17.7.1.4.3.1.4', 1107, r'\x80\x20\x00\x00' , 'octetstr')Офлайн
0
s0rgПопробовал не работает - возвращает ноль.
http://docs.python.org/reference/lexical_analysis.html#strings
для чистоты эксперемента, так сказать.
Офлайн
857
solnнужно почитать по встроенным типам в питоне
Чем обусловлено такое поведение и где про это можно почитать?
>>> s = '\\ \\ \\'
>>> [s]
['\\ \\ \\']
>>> len([s])
1
>>> list(s)
['\\', ' ', '\\', ' ', '\\']
>>> len(list(s))
5
>>> lst = list(s)
>>> lst
['\\', ' ', '\\', ' ', '\\']
>>> lst[0]
'\\'
>>>
Офлайн
0
s0rgИзвиняюсь, что пропал. Прочел, понял. Спасибо.
http://docs.python.org/reference/lexical_analysis.html#strings
String literals may optionally be prefixed with a letter ‘r’ or ‘R’; such strings are called raw strings and use different rules for interpreting backslash escape sequences.
In [231]: _edit = netsnmp.Varbind('.1.3.6.1.2.1.17.7.1.4.3.1.4', 1107)
In [232]: hexmask = netsnmp.snmpget(_edit, Version = 2, DestHost='ip', Community="comunitiname")
Тут я получил hex маску от netsnmp.snmpget через ipyton
In [233]: print hexmask
('\x80`\x00\x00',)
а тут маску которую он сам мне отдал отдаю netsnmp.snmpset
In [234]: _edit = netsnmp.Varbind('.1.3.6.1.2.1.17.7.1.4.3.1.4', 1107, hexmask , 'octetstr')
In [235]: netsnmp.snmpset(_edit, Version = 2, DestHost='ip', Community="comunitiname")
Out[235]: 0KNOWN BUGS:
Too many to mention at this point
Офлайн