如何在Python程序中运行Unix命令
大家好,又见面了,我是你们的朋友全栈君。
Unix是由Ken Thompson和Dennis Ritchie在1969年左右在AT&T贝尔实验室开发的操作系统。 我们可以使用许多有趣的Unix命令来执行不同的任务。 问题是,我们可以直接在Python程序中使用此类命令吗? 这就是我将在本教程中向您展示的内容。
Unix命令ls
列出目录中的所有文件。 如果在Python脚本中按原样放置ls
,则在运行程序时将得到以下内容:
Traceback (most recent call last):
File "test.py", line 1, in <module>
ls
NameError: name 'ls' is not defined
这表明Python解释器将ls
视为变量,并要求对其进行定义(即初始化),而没有将其视为Unix命令。
os.system()
解决此问题的一种方法是使用Python的os
模块中的os.system()
。
如文档中所述, os.system()
:
在子外壳程序中执行命令(字符串)。 这是通过调用标准C函数system()来实现的,并且具有相同的限制。
因此,我们可以在Python中运行ls
命令,如下所示:
import os
os.system('ls')
这将返回当前目录( .py
程序所在的位置)中的文件列表。
让我们再举一个例子。 如果要返回当前日期和时间,可以使用Unix命令date
,如下所示:
import os
os.system('date')
就我而言,这就是上面脚本的结果:
Tue May 24 17:29:20 CEST 2016
呼叫()
尽管os.system()
可以工作,但是不建议使用os.system()
,因为它被认为已过时且已过时。 推荐使用的解决方案是Python的subprocess
模块call(args)
函数。 如有关此功能的文档中所述:
运行args描述的命令。 等待命令完成,然后返回returncode属性。
如果要使用此方法运行ls
Unix命令,则可以执行以下操作:
from subprocess import call
call('ls')
让我们看看如何使用subprocess
模块返回日期,但是让这个例子更有趣。
import subprocess
time = subprocess.Popen('date', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = time.communicate()
print 'It is', output
可以使用check_output()
更简单地运行以上示例,如下所示:
import subprocess
time = subprocess.check_output('date')
print 'It is', time
以上脚本的输出为:
It is Tue May 24 19:14:22 CEST 2016
上面的示例显示了使用不同subprocess
函数的灵活性,以及如何将结果传递给变量以执行进一步的操作。
结论
正如我们在本教程中看到的那样,可以使用subprocess
模块来调用和执行Unix命令,当通过其不同功能使用Unix命令时,该模块提供了很大的灵活性。 您可以从Python文档中了解有关此模块及其不同功能的更多信息。
翻译自: https://code.tutsplus.com/articles/how-to-run-unix-commands-in-your-python-program–cms-25926
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142768.html原文链接:https://javaforall.cn
相关文章
- Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
- pythonrandom函数用法_python标准库总的random函数用法[通俗易懂]
- python获取窗口句柄
- gyp ERR! stack Error: Can't find Python executable 'python'
- 【说站】python探针如何实现
- Python 相关文件常见的后缀名详解[通俗易懂]
- 【测试开发】python系列教程:第一个Python程序
- h5 Python_python做h5网站
- python里面的缩进是什么意思_Python缩进规则(一看即懂)[通俗易懂]
- python 图像处理库_Python图像处理库
- python中copy.deepcopy_Python eval
- python制作自动交易程序_Python如何实现自动化交易
- 高级shell脚本编程指南_python的快速入门
- 人生苦短,我用Python
- 简单的Python调用C++程序
- Python 函数与变量作用域
- Python字典常用的函数和方法_Python自学第二十七节
- 搭建python开发环境-c++教程 如何搭建Python开发环境?
- 【测试开发】python系列教程:Python 推导式
- 手把手教你用 Python 实现浪漫表白程序
- pycharm pro for mac(Python编辑开发)
- 【干货书】基于模型的强化学习:使用python工具箱从数据到连续动作
- 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( “Python“ 因为出现问题而无法打开 )
- python-Python与PostgreSQL数据库-使用Python执行PostgreSQL查询(二)
- Python实现简单的HTTP请求发送详解编程语言
- 使用Python执行Linux命令的方法(python调用linux命令)
- Linux下安装Python程序与PIP的指南(linuxpythonpip)
- python-pandas:切片详解编程语言
- 学习如何使用 Python 构建你自己的 Twitter 机器人
- Python脚本实现Linux命令快捷控制(python执行linux命令)
- Linux下从系统卸载Python(linux下卸载python)
- python编程-将Python程序转化为可执行程序[整理]
- python练习程序批量修改文件名