当前位置: 华文头条 > 推荐

python自动化脚本,解放你的双手(4)

2024-03-22推荐

通过前面几章的学习,我们学会了如何使用python脚本,对操作系统执行文件文件夹的增删改查,执行操作系统系统命令并使用正则表达式处理返回结果,并对返回结果进行二次加工和使用。

本次,我们为了使我们的python自动化脚本更为灵活,我们就需要学习下如何使我们的python脚本处理外部输入 和输出,通过外部输入的不同,来控制脚本的不同功能。

最简单的输入示例:

name = input("Please input a name: ")print("Hello, ", name)

执行结果如上图所示

下面我们来一个稍微复杂点的示例:

def to_seconds(hours, minutes, seconds): return hours*3600 + minutes*60 + secondsprint("Welcome to this time converter")cont = "y"while cont.lower() == "y": hours = int(input("Enter the number of hours: ")) minutes = int(input("Enter the number of minutes: ")) seconds = int(input("Enter the number of seconds: ")) print("That's {} seconds".format(to_seconds(hours, minutes, seconds))) print() cont = input("Do you want to do another conversion? [y to continue] ")print("Good bye!")

执行结果如下所示:

执行结果

输入y可以继续进行时间转换,输出其它任意字符退出。

这里比较关键的两个函数的使用:

  1. input 函数, 括号内为提示字符串,会读取标准输入并返回一个字符串类型的变量
  2. int 函数, 可以对字符串入参进行类型转换,转换为int类型,参与运算

上面的python基本函数使用,如果大家感兴趣,后续多开几期给大家讲解。

下面我们介绍第二种外部输入方式,那就是linux 系统的环境变量 。

代码示例如下:

>>> import os>>> print("HOME: " + os.environ.get("HOME", ""))HOME: /home/chen // 打印结果>>> print("SHELL: " + os.environ.get("SHELL", ""))SHELL: /bin/bash // 打印结果>>> print("FRUIT: " + os.environ.get("FRUIT", ""))FRUIT: // 环境变量中没有FRUIT变量,直接返回空字符串

如果我们想让FRUIT 有值,则可以在linux shell中执行export 命令,导出FRUIT变量,然后尝试一下。

如下图所示:

导出环境变量FRUIT

再次尝试使用python脚本打印FRUIT 环境变量的值,结果如下:

>>> print("FRUIT: " + os.environ.get("FRUIT", ""))FRUIT: Apple // export 变量之后,我们就可以读取到结果了

我们可以通过os.environ 方法获取操作系统当前环境变量信息,这也是我们在进行自动化脚本编写过程中, 一个重要的输入来源。

下面我们介绍第三种输入方式,那就是命令行参数 ,我们经常会使用命令行参数进行一些自定义信息的传入。

如下,我们做了一个最简单的命令行输入参数打印:

import sysprint(sys.argv) // 打印所有命令行参数

运行结果

使用效果如上图所示,能够获取到所有命令行参数。

实际上,我们的sys.argv 参数是一个python 的列表,我们可以根据下标直接获取任何一个输入参数的值。

python test.py one two three // 运行python脚本,带三个命令行参数print(sys.argv[1])// 会打印one

好了,综上,python的输入信息的几种方式我们就讲完了,大体来说分为三种。

  1. 通过input 等,用户交互输入
  2. 通过os.environ,直接获取系统环境变量
  3. 通过sys.argv 获取执行python脚本时的命令行参数

最后,我们看下python 脚本的输出,即返回值,正常执行完python脚本,都会返回0。

不过如果,我们的python脚本有错误的话,那么需要返回非零数值以表示脚本执行存在报错。

我们通常会使用sys.exit() 函数进行错误处理,并返回非零值。

下面看一个例子:

import osimport sysfilename = sys.argv[1]if not os.path.exists(filename): with open(filename, "w") as f: f.write("New file created\n")else: print("Error, the file {} already exists".format(filename)) sys.exit(1)// 此处就是如果文件存在,则直接返回非0值// 表示python脚本执行失败返回

好的,今天我们暂时就讲这么多,今天的内容最好跟前几期连贯在一起进行融汇贯通,那么这样的话,你就基本掌握了如何写好一个python自动化脚本的大多数基本技能了。

最后,还是那句话,你的关注点赞就是我更新的动力。。如果大家有什么想要学习的内容,却又苦于无处下手,关注我,留言即可,我随时写文章进行分享。