无法将用户输入传递给python中的wget

时间:2015-03-28 15:57:27

标签: python wget

我想将用户输入传递给wget以下载网页内容。

  User_input = raw_input "Type a URL Here.. "

  os.system("wget -O /directory/, User_input")

上面的代码不起作用,因为wget不会接受用户输入,但它会改为“User_input”。有没有解决这个问题的方法?

谢谢

2 个答案:

答案 0 :(得分:0)

您实际上并没有传递变量,也使用subprocess模块:

from subprocess import check_call

User_input = raw_input("Type a URL Here.. ")

check_call(["wget", "-O", "directory/foo.html", User_input])

在您的代码中,您需要实际传递变量:

 os.system("wget -O /directory  {}".format(User_input))

如果您的命令返回非零退出状态,您将使用CalledProcessError获得check_call

保存文件的最简单方法是让用户选择名称并添加扩展名。你可以解析传递的网址,但是有太多可能的变化来保持一致:

User_input = raw_input("Type a URL Here.. ")
save_as = raw_input("Enter name to save file as...")

check_call(["wget", "-O", "{}.html".format(save_as), User_input])

答案 1 :(得分:0)

你至少试过学习一些Python吗?您的代码有很多的问题。

  • raw_input "Something"无效。您需要使用raw_input("User input: ")
  • 您正在使用os模块而不先导入
  • 您试图错误地将值传递给wget,最好这样做cmd="wget -O /directory/ "+User_input;os.system(cmd)