专栏首页python3python 下执行wget传入参数

python 下执行wget传入参数

最近遇到一个问题,使用爬虫爬取视频地址和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....   如果你更关注命令的终端输出,可以如下图这样操作, 同样很简单.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python爬取小视频

    通过这段代码,我们可以考虑分析。在python代码中用一段存放描述内容,一段存放视频所在的url 对于每个url地址,通过urllib所提供的urlr...

    py3study
  • 学习:Python之Python安装(一

          简单          易学           免费开源           高层语言           可移植性           解释性 ...

    py3study
  • python脚本实现本地或远程执行命令

    功能: 1、执行本地shell命令,执行完成后获取结果 2、执行本地shell命令,执行中实时获取输出结果 3、执行远程shell命令,执行完成后获取结果 4、...

    py3study
  • SAP系统玩阴的?

    近日和项目上的ABAP开发顾问一起弄一个自开发的报表。其中某个栏位的取值需要从批次主数据里抓取到供应商代码,然后根据供应商代码取到供应商名称等。为此笔者需要备功...

    人称T客
  • shell、cmd、dos和脚本语言区别和联系

    在windows系统中,“开始-运行-cmd”可以打开“cmd.exe”,进行命令行操作。 操作系统可以分成核心(kernel)和Shell(外壳)两部分,其...

    Fisherman渔夫
  • vcsa修改数据库用户密码

    vcsa就是一个suse linux,它会内置一个PostgreSQL数据库,那么如何修改数据库用户密码呢? 首先通过22端口远程连入suse linux 11...

    孙杰
  • Django Template层之Template概述

    下载地址:https://www.python.org/downloads/release/python-340/

    授客
  • 十三:自动生成HTML文件

    为了实现这个功能,需要借助HtmlWebpackPlugin根据指定的index.html模板生成对应的 html 文件,还需要配合html-loader处理 ...

    心谭博客
  • JDK1.9-抽象类

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    cwl_java
  • 抽象画你是没希望了 抽象类你还可以抢救一下

    抽象一词的本义是指人在认识思维活动中对事物表象因素的舍弃和对本质因素的抽取。说人话就是删除看的懂得,留下看不懂的。

    用户5745563

扫码关注云+社区

领取腾讯云代金券