首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 下执行wget传入参数

python 下执行wget传入参数

作者头像
py3study
发布2020-01-10 16:45:35
2.5K0
发布2020-01-10 16:45:35
举报
文章被收录于专栏:python3python3

最近遇到一个问题,使用爬虫爬取视频地址和url存入文件,之后想用python通过wget来下载视频到本地

决定使用subprocess方法调用shell

python读取视频名存入name变量,读取视频地址存入url变量 cmd = 'wget -O name url' 因为该命令需要放在引号中,所以'name'与‘url’被直接使用,不能够获取正确的变量值

使用shell不可行:wget - O $name $url

所以修改

cmd='wget -O %s %s' % (name,url)

import subprocess

name='功夫熊猫.mp4'

url='http://www.abcdefg.com'

cmd='wget -O %s %s' % (name,url)

subprocess.call(cmd,shell=True)

python中执行shell命令的4种方式

Python经常被称作“胶水语言”,因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库。今天我们就讲解其中的一个方面,用Python调用Shell命令。用Python调用Shell命令有如下几种方式:

工具/原料

  • Python环境

方法/步骤

  1. os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的
  2. os.popen(command[,mode[,bufsize]]),图中是一个例子. 可以看出,popen方法通过p.read()获取终端输出,而且popen需要关闭close().当执行成功时,close()不返回任何值,失败时,close()返回系统返回值. 可见它获取返回值的方式和os.system不同。
  1. 使用commands模块,图中是一组例子。根据你需要的不同,commands模块有三个方法可供选择。getstatusoutput, getoutput, getstatus。
  1. 但是,如上三个方法都不是Python推荐的方法,而且在Python3中其中两个已经消失。Python文档中目前全力推荐第四个方法,subprocess! subprocess使用起来同样简单:
  1. 直接调用命令,返回值即是系统返回。shell=True表示命令最终在shell中运行。Python文档中出于安全考虑,不建议使用shell=True。建议使用Python库来代替shell命令,或使用pipe的一些功能做一些转义。官方的出发点是好的,不过真心麻烦了很多, so....   如果你更关注命令的终端输出,可以如下图这样操作, 同样很简单.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python中执行shell命令的4种方式
    • 工具/原料
      • 方法/步骤
      相关产品与服务
      命令行工具
      腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档