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

无法在python中将用户输入传递给wget,python,wget,Python,Wget,我想将用户输入传递到wget以下载网页内容 User_input = raw_input "Type a URL Here.. " os.system("wget -O /directory/, User_input") 上面的代码不起作用,因为wget不会接受用户输入,而是wget“user\u input”。有办法解决这个问题吗 谢谢您实际上并没有传递变量,请同时使用模块: 在代码中,您需要实际传递变量: os.system("wget -O /directory {}".f

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

  User_input = raw_input "Type a URL Here.. "

  os.system("wget -O /directory/, User_input")
上面的代码不起作用,因为wget不会接受用户输入,而是wget“user\u input”。有办法解决这个问题吗


谢谢

您实际上并没有传递变量,请同时使用模块:

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

 os.system("wget -O /directory  {}".format(User_input))
如果您的命令返回非零退出状态,您将使用
check\u 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吗?你的代码有很多问题

  • 原始输入“某物”
    无效。您需要使用
    原始输入(“用户输入:”)
  • 您正在使用
    os
    模块,而没有先导入它
  • 您试图将值错误地传递给
    wget
    ,最好这样做
    cmd=“wget-O/directory/”+User\u input;操作系统(cmd)

我无法正确格式化代码:无序列表后无法格式化代码。为什么?你为什么要把一根绳子扔到另一根绳子上?另外,os.system应该是avoided@PadraicCunningham,是的,这很奇怪,但我有时这样做只是为了确定。原始输入总是返回一个字符串,除非您显式强制转换,这样您就可以安全地不强制转换。我想,您在
操作系统中的字符串声明不正确:您同时使用
@ForceBrum是的,如果输入错误,则根本不应使用该命令。应始终使用子流程模块。我刚刚写了一篇关于路径名和大括号之间需要空格的评论:)@padraiccnningham谢谢你的建议,代码对我很有用。还有一个问题,如何使用用户输入名称保存?例如,如果您键入google.com,它会将输出保存到google.html文件中。@PadraicCunningham,再次感谢您的快速帮助,但它似乎无法正常工作。虽然它是用用户输入的名称保存的,但该文件包含wget信息(下载过程),而不是网站的html内容,因为它是用另一个名为“index.html”的文件名保存的
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])