Python中split()函數,通常用於將字符串切片並轉換為列表。
一、函數說明:
split():語法:str.split(str="",num=string.count(str))[n]
拆分字符串。通過制定分隔符將字符串進行切片,並返回分割后的字符串列表[list]
參數:str:分隔符,默認為空格,但不能為空("")
num: 表示分割次數。如果指定num,則分割成n+1個子字符串,並可將每個字符串賦給新的變量
[n]: 選取第n個分片,即第n個字符串,從0開始算。
二、示例:
u = "www.google.com"
print u.split('.') --> ['www','google','com']
print u.split('.',1)-->['www','google.com']
print u.split('.',2)[1]-->google
u1,u2,u3 = u.split('.')
三、實際應用:
寫了一個讀取ip列表,並自動替換掉配置文件里host內容的python腳本。
ip_list.txt 內容:(機房名稱和IP之間用空格,詳見下文spilt參數)
吉林樞紐聯通-01 122.0.0.1
吉林樞紐聯通-01 122.0.0.2
"hostname": "吉林樞紐聯通-01 122.0.0.1",
1 def rep_hostname(): 2 3 ip_dict = {} 4 ip_local = [] 5 flag = 0 6 7 with open('ip_list.txt') as f: 8 for line in f.readlines(): 9 line = line.strip('\n').split(' ') 10 ip_dict[line[1]] = line[0].decode('GBK') 11 12 13 ips = os.popen("ifconfig|grep \"inet addr:\"|head -2 |awk '{print $2}'|cut -d':' -f2") 14 15 for i in ips.readlines(): 16 ip = i.strip('\n') 17 if ip in ip_dict: 18 flag = 1 19 print "The Right IP is : %s" % ip 20 (stat, out) = commands.getstatusoutput('sed -i "s#\\\"hostname\\\": \\\"\\\",#\\\"hostname\\\": \\\"%s %s\\\",#g" /home/langxiaowei/falcon-agent/cfg.json' % (ip_dict[ip],ip)) 21 if stat != 0 : 22 print out 23 return 24 ip_local.append(ip) 25 26 if flag == 0 : 27 print "Error: %s not in ip_list!" % ip_local 28 29 return flag 30 31 if __name__ == '__main__': 32 rep_hostname()
