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

Fail to pass user input to wget in python

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

  User_input = raw_input "Type a URL Here.. "

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

上面的代码不起作用,因为 wget 不会接受用户输入,而是 wget "User_input"。有办法解决这个问题吗?

谢谢

你实际上并没有传递变量,也使用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))

如果您的命令 returns 非零退出状态,您将使用 check_call.

获得 CalledProcessError

保存文件的最简单方法是让用户选择名称并添加扩展名。您可以解析传递的 url,但可能的变体太多,无法始终如一地进行解析:

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])

您是否至少尝试过学习一些 Python?您的代码有 很多 个问题。

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