将用户设置的变量作为参数传递给os.system()命令

1 投票
3 回答
13227 浏览
提问于 2025-04-17 09:28

好的,基本上我对Python还很陌生,不过我想为我在工作中使用的基本工具做一个简单的菜单系统,我目前的代码如下:

import os
def main():
    print "Main Menu.\n"
    print "1. Ping yourself.\n"
    print "2. Ping someone else.\n"
    opt = raw_input ("Please enter a number:- ")
    if opt == "1":
            os.system('ping 127.0.0.1')
    if opt == "2":
            ip = raw_input ("Please enter IP:- ")
            os.system('ping'.ip)

main()

现在,这段代码运行得很好,但我在这里这行代码上遇到了问题:

os.system('ping'.ip)

因为我想在命令中使用第10行的变量。希望这个问题能简单解决。

谢谢,

罗斯。

3 个回答

-3

一旦你把它弄得正常工作了,如果用户输入了:

127.0.0.1; rm -rf /
1

你需要在命令和参数之间留一个空格。

7

你需要一个空格,而连接字符串的符号是 +,不是 .:

os.system("ping " + ip)

你也可以使用字符串格式化的方法:

os.system("ping %s" % ip)

撰写回答