如何在Python程序中运行Unix命令

如何在Python程序中运行Unix命令Unix是由KenThompson和DennisRitchie在1969年左右在AT&T贝尔实验室开发的操作系统。我们可以使用许多有趣的Unix命令来执行不同的任务。问题是,我们可以直接在Python程序中使用此类命令吗?这就是我将在本教程中向您展示的内容。Unix命令ls列出目录中的所有文件。如果在Python脚本中按原样放置ls,则在运行程序时将得到以下内容:Tra…

大家好,又见面了,我是你们的朋友全栈君。

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.net/142768.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python数组_python在数组中查找指定元素

    python数组_python在数组中查找指定元素一,创建列表创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来:member=[‘a’,’b’,’c’,’1′,’2′,3]二,访问列表列表索引从0开始,使用下标索引来访问列表中的值:member=[‘a’,’b’,’c’,’1′,’2′,3]print“member[0]:”,member[0]输出结果:member[0]:a三,更新列表1.append方法可以在列表后方添加…

    2022年8月13日
    5
  • element table_elementuos8

    element table_elementuos81、后台返回数据类型若有数组2、页面部分&lt;el-table-columnalign="center"prop="idCard"label="身份证号"width="250"&gt;&lt;/el-table-column&gt;&lt;el-table-columnalign="center"label="职务"width

    2025年9月23日
    7
  • Lombok插件的简介「建议收藏」

    Lombok插件的简介「建议收藏」Lombok插件的简介1Lombok引入2Lombok常见注解使用1@Data2@AllArgsConstructor3@NoArgsConstructor4@ToString5@EqualsAndHashCode6@Getter/@Setter7@Slf4j8@NonNull9@Value10@Builder11@Synchronized12@SneakyThrows13@Cleanup3Lombok原理4关于Lombok总结官网:https://projectlom

    2025年10月4日
    5
  • 空格代码 &nbsp[通俗易懂]

    空格代码 &nbsp[通俗易懂]空格代码 &nbsp

    2022年9月22日
    1
  • 很黄很暴力的图片搜索引擎

    很黄很暴力的图片搜索引擎http://www.airtightinteractive.com/projects/simple_image_search/app/

    2022年10月9日
    4
  • php轻博客社区视频教程,轻博客主题 – SEO极致优化的ZBLOG轻博客主题

    php轻博客社区视频教程,轻博客主题 – SEO极致优化的ZBLOG轻博客主题zblog自适应轻博客主题,简洁、轻巧、极致优化~QQ群:457320274(问题反馈以及其他链接交换等)交流社区:https://www.bxiu.net/(有问题可以求助交流)更新记录:2021.02.22v2.8更新内容:1、新增分类自定义标题;(默认分类标题是分类名-副标题,输入自定义后则显示自定义标题,详情看分类编辑页)。2021.02.20v2.7更新内容:1、调整列…

    2022年7月21日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号