为什么操作系统模块不运行wget cmd命令?

2024-09-26 22:10:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从网上下载一个zip文件,并试图通过控制台命令使用wget-O fileName urlink下载它,但是在尝试代码时,CMD打开一秒钟然后关闭,我在任何地方都找不到该文件。你知道吗

我尝试过使用其他方法下载文件,但返回错误403。在CMD中使用wget可以下载正确的文件,但不能在python代码中使用。你知道吗

def gotoDownload(link):
    try:
        with requests.Session().get(link) as download:
            if isUrlOnline(download):
                soup = BeautifulSoup(download.content, 'html.parser')
                filtered = soup.find_all('script')
                zip_file_url = re.search(r"('http.*?')", filtered[17].text).group().replace("'", "")

                os.system("wget -O {0} {1}".format('CreatureFinalZTL.zip', zip_file_url))

希望下载该文件 而不是下载任何东西。你知道吗


Tags: 文件代码命令cmdurldownload地方link
3条回答

修复,必须重新添加wget到windows上的路径。你知道吗

改用subprocess。你知道吗

import subprocess

...

subprocess.run(["wget",  "-O", 'CreatureFinalZTL.zip', zip_file_url])

这避免了shell与您希望运行的命令的任何关联。你知道吗

这里有一些事情可能会有所帮助(它可能会或可能不会解决您的问题,因为这取决于您的机器的设置和配置)。首先,我想建议的一件事是在路径上更加具体。可以在wget行中使用绝对路径,如下所示:

"wget -O {0} {1}".format('/path/to/output/dir/CreatureFinalZTL.zip', zip_file_url)

如果Python环境不在您期望的目录中运行,这通常很有用。或者,可以使用以下python命令强制目录:

os.chdir( path )

然后,您就可以放心地使用相对路径进行操作。我建议的第二件事是确认url是您所期望的。就这样打印出来:

print( zip_file_url )

这听起来可能很傻,但确认您的regex是否正常运行是很重要的。你知道吗

相关问题 更多 >

    热门问题