python 下执行wget传入参数
来源:互联网 发布:cyberghost for mac 编辑:程序博客网 时间:2024/05/02 00:28
参考:http://muchong.com/html/201310/6477291.html
参考:python中执行shell命令的4种方式 http://jingyan.baidu.com/article/fdffd1f85cce4cf3e88ca170.html
最近遇到一个问题,使用爬虫爬取视频地址和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环境
方法/步骤
os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的
os.popen(command[,mode[,bufsize]]),图中是一个例子. 可以看出,popen方法通过p.read()获取终端输出,而且popen需要关闭close().当执行成功时,close()不返回任何值,失败时,close()返回系统返回值. 可见它获取返回值的方式和os.system不同。
使用commands模块,图中是一组例子。根据你需要的不同,commands模块有三个方法可供选择。getstatusoutput, getoutput, getstatus。
但是,如上三个方法都不是Python推荐的方法,而且在Python3中其中两个已经消失。Python文档中目前全力推荐第四个方法,subprocess! subprocess使用起来同样简单:
直接调用命令,返回值即是系统返回。shell=True表示命令最终在shell中运行。Python文档中出于安全考虑,不建议使用shell=True。建议使用Python库来代替shell命令,或使用pipe的一些功能做一些转义。官方的出发点是好的,不过真心麻烦了很多, so.... 如果你更关注命令的终端输出,可以如下图这样操作, 同样很简单.
- python 下执行wget传入参数
- python参数的传入 * ,**
- python传入命令行参数
- Python程序路径,传入参数
- Linux 下wget 的参数描述
- Windows环境下main()函数传入参数
- 传入参数
- 170520 cmd 下带参数执行python 文件
- python function 传入多个参数; 动态传入不同个数参数
- 用Eclipse+pydev调试python传入参数配置
- python脚本程序,传入参数*要用单引号'*'
- C++嵌入Python程序(二):参数传入及返回
- python调用dll动态库传入结构体作为参数
- Python-threadpool多线程多个参数传入示例
- C++ 调用 python 传入参数的编码问题
- Linux下使用getopt函数来获取传入的参数
- Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
- Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
- 将eclipse的项目导入android studio
- B样条曲线
- 博科300光交配置/cisco mds9000系列交换机配置
- codeforces 710D Two Arithmetic Progressions [同余方程]【数论】
- 关于ext前端Date传到后台变成String形式的解决办法
- python 下执行wget传入参数
- UNITY之CharacterController
- redis 五种数据类型的使用场景
- linux_文件类型
- C数据结构学习历程(5) 图之数组表示法的BFS
- MySQL查看和修改字符集的方法
- 排列问题算法-next_permutation,康托编码
- python模块datetime的使用2
- js倒计时时间不准 && css选择器优先级 && promise详解