if __name__=='__main__':
FServerId = raw_input("Please input source id:")
GetFileKey(FServerId)
def GetFileKey(SzoneId):
##截取ID第一位
GroupId = SzoneId.replace(SzoneId[-3:],'')
##截取后三位并先替换前面两位以0开头的数字为空
ServerId = re.sub("^[0]",'',re.sub("^[0]",'',SzoneId[-3:]))
SelectSQL = 'mysql -uuser -ppasswd -h10.12.32.111 -N -e "use tgame;select GAMESERVERIP,GAMESERVERDIR from gameserver WHERE GROUPID =%s and GAMESERVERID =%s "' %(GroupId,ServerId)
p = subprocess.Popen("%s" %(SelectSQL),shell=True,close_fds=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
p.wait()
errorput = p.stderr.read()
##这里获取的查询结果集以字符串格式存储
stdoutput = p.stdout.read()
if errorput.strip() != "":
log(errorput,1)
sys.exit(1)
elif stdoutput != "":
##split()方法
szoneip,szonedir = stdoutput.split()
split() 函数详解
split翻译为分裂。 split()就是将一个字符串分裂成多个字符串组成的列表。
split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割。
以上为例:
mysql查询出来的结果集字符串(两个值)
stdoutput 用split()方法分裂,这里没有带参数默认以空格为分裂符,组成list
这样就可以以变量形式取出你需要的值了 szoneip,szonedir = stdoutput.split()
打印两个变量的结果为
变量1 szoneip 默认取列表第一个值
变量2 szonedir 取列表第二个值
....
以此类推如果有多个值需要多个变量取出(变量 用,分隔)
szoneip,szonedir,... = stdoutput.split()
这里就主要介绍用split()方法获取mysql结果集