使用Python執行Zookeeper四字命令

2021-09-19 22:46:47 字數 1825 閱讀 7839

如果只需要執行zookeeper四字命令,不需要zkclient,簡單的socket鏈結即可。

基本思路:

建立socket鏈結;

傳送四字命令;

接收返回資訊;

解析返回資訊。

**:

import socket

""" by liuhailong2008#foxmail.com

"""def multi_line_with_split(data, split_char):

lines = data.split('\n')

ret = {}

for line in lines:

if len(line) == 0:

continue

item = line.split(split_char)

if len(item) > 1:

ret[item[0]] = item[1]

return ret

def multi_line_with_equal_split(data):

return multi_line_with_split(data, '=')

def multi_line_with_tab_split(data):

return multi_line_with_split(data, '\t')

def multi_line_with_colon_split(data):

return multi_line_with_split(data, ':')

def single_line(data):

return

response_parser_repository =

def get_response_parser(four_word_command):

return response_parser_repository.get(four_word_command, none)

def talk_to_zookeeper(four_word_command, host='127.0.0.1', port=2181, timeout=1):

conn = socket.socket()

conn.settimeout(timeout)

conn.connect((host,port))

conn.send(four_word_command)

response_data = conn.recv(2048)

conn.close()

# print response_data

parser = get_response_parser(four_word_command)

if parser is none:

return response_data

return parser(response_data)

if __name__ == '__main__':

print 'ruok: %s ' % talk_to_zookeeper('ruok')

print 'conf: %s ' % talk_to_zookeeper('conf')

print 'envi: %s ' % talk_to_zookeeper('envi')

print 'srvr: %s ' % talk_to_zookeeper('srvr')

print 'mntr: %s ' % talk_to_zookeeper('mntr')

**輸出:

ruok:  

conf:

envi:

srvr:

使用notepad 執行python

參考部落格 儘管有pycharm和spyder這樣的ide可以編寫python程式,但是它們都開啟慢,耗資源,ulipad雖然也很小巧,但是覺得不如notepad 用著順手,於是就想用notepad 配置一下。開啟notepad 在選單欄單擊 執行 選單,在下拉列表中選擇 執行 接著會彈出這個視窗 ...

使用python執行shell指令碼

這裡介紹一下python執行shell命令的四種方法 1 os模組中的os.system 這個函式來執行shell命令 os.system ls anaconda ks.cfg install.log install.log.syslog send sms service.py sms.py 0注,...

python執行函式 python怎麼執行函式

python 函式定義及呼叫 1 什麼是函式?在程式中,函式就是具備某一功能的工具,事先將工具準備好即函式的定義 遇到應用場景拿來就用即函式的呼叫 函式必須遵循先定義後呼叫的原則 2 為什麼要用函式 不用函式的問題是 程式冗長 程式擴充套件性查 程式的可讀性 3 如何用函式del 函式名 引數1,引...