在 python 中传递 os.system 中的整型变量和字符串
pass integer variable and string in os.system in python
我收到 SyntaxError: invalid syntax or TypeError: unsupported operand type(s) for +: 'int' and 'str'
.这里portnum为整数,其余为字符串或
#!/usr/bin/python
import getpass
import sys
import MySQLdb
import os
os.system('clear')
servname = raw_input("What's your server name? ")
portnum = input("Your instance port number ? ")
usrname = raw_input("What's your user name? ")
print( usrname + " is your username ?")
passphrase = getpass.getpass("Enter password:")
cmdstr="/usr/local/bin/innotop -h " + servname + "-P ", portnum + "-u " + usrname + "-p " + passphrase
print(cmdstr)
os.system("cmdstr")
字符串连接的每个元素之间需要一个 +
,而不是逗号,无论这些元素是字符串文字还是命名变量。如果使用逗号,则会创建一个元组。如果什么都不用,就会出现语法错误。另外,请务必将整数 portnum
发送到 str()
,以便将其连接为字符串。
cmdstr="/usr/local/bin/innotop -h " + servname + "-P " + str(portnum) + "-u " + usrname + "-p " + passphrase
此外,不要将文字字符串 'cmdstr'
发送到 os.system()
;那不是您要在命令行中输入的内容。您想发送该变量指向的值,就像您打印它时所做的那样:
os.system(cmdstr)
我收到 SyntaxError: invalid syntax or TypeError: unsupported operand type(s) for +: 'int' and 'str' .这里portnum为整数,其余为字符串或
#!/usr/bin/python
import getpass
import sys
import MySQLdb
import os
os.system('clear')
servname = raw_input("What's your server name? ")
portnum = input("Your instance port number ? ")
usrname = raw_input("What's your user name? ")
print( usrname + " is your username ?")
passphrase = getpass.getpass("Enter password:")
cmdstr="/usr/local/bin/innotop -h " + servname + "-P ", portnum + "-u " + usrname + "-p " + passphrase
print(cmdstr)
os.system("cmdstr")
字符串连接的每个元素之间需要一个 +
,而不是逗号,无论这些元素是字符串文字还是命名变量。如果使用逗号,则会创建一个元组。如果什么都不用,就会出现语法错误。另外,请务必将整数 portnum
发送到 str()
,以便将其连接为字符串。
cmdstr="/usr/local/bin/innotop -h " + servname + "-P " + str(portnum) + "-u " + usrname + "-p " + passphrase
此外,不要将文字字符串 'cmdstr'
发送到 os.system()
;那不是您要在命令行中输入的内容。您想发送该变量指向的值,就像您打印它时所做的那样:
os.system(cmdstr)