2012-07-31 40 views
2

試圖解析打印語句中的變量。python解析打印或變量裏面的變量

client = fabric.operations.prompt("Enter client's email address:") 
cmd = 'mysql -u %s -p%s -e "UPDATE users SET email = ' %(env.user, dbpasswd) + '"%client"' + ' WHERE id = 1" %s' %account 
print cmd 

結果:

mysql -u root -password -e "UPDATE users SET email = %client WHERE id = 1" demo 

期望的結果:

mysql -u root -password -e "UPDATE users SET email = '[email protected]' WHERE id = 1" demo 

回答

2
cmd = 'mysql -u %s -p %s -e "UPDATE users SET email = ' %(env.user, dbpasswd) + "'%s'" % client + ' WHERE id = 1" %s' % account 

這應該修復它。您需要將%client替換爲值client

3

我很驚訝,沒有人提到新的字符串格式化選項:

cmd = 'mysql -u {user} -p{passwd} -d "UPDATE users SET email = {email} WHERE id = 1" {account}'.format(user=env.user, passwd=dbpasswd, email=client, account=account)