)
借助于前面几章里经历的学习过程 , 我们已然掌握了怎样运用脚本, 针对操作系统施行对文件文件夹的增添、删除、修改以及查询操作 , 去执行操作系统的系统类命令 , 接着运用正则表达式来处置返回的结果 , 随后针对返还的这些结果展开二次的加工举动与加以使用。此次, 为令咱们的自动化脚本益发灵活, 咱们就得去学习怎样让咱们的脚本处理外部输入与输出, 借由外部输入的各异, 来操控脚本的不同功能。最简单的输入示例name input(Please input a name: ) print(Hello, , name)执行结果如上图所示下面我们来一个稍微复杂点的示例def to_seconds(hours, minutes, seconds): return hours*3600 minutes*60 seconds print(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(Thats {} seconds.format(to_seconds(hours, minutes, seconds))) print() cont input(Do you want to do another conversion? [y to continue] ) print(Good bye!)执行结果如下所示执行结果输入y可以继续进行时间转换输出其它任意字符退出。这里比较关键的两个函数的使用把那个能读取标准输入, 返回一个字符串类型变量的input函数, 其括号内是提示字符串, 和那个能对字符串入参进行类型转换, 转换为int类型, 进而参与运算的int函数区分开来。倘若诸位有着浓厚兴致, 关于上层的基础函数运用情况, 往后会额外开设好几期专题来为大家予以详尽阐述。下面来讲第二种外部输入方式, 这是由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里执行命令, 将FRUIT变量导出, 而后去尝试一番。如下图所示导出环境变量FRUIT再次尝试使用脚本打印FRUIT 环境变量的值结果如下 print(FRUIT: os.environ.get(FRUIT, )) FRUIT: Apple // export 变量之后我们就可以读取到结果了在进行自动化脚本编写期间, 我们能够借助os. 方式来获取操作系统当下环境变量信息, 而这也是一个关键的输入源头。下面, 我们来介绍第三种输入方式, 此方式便是命令行参数, 对于命令行参数, 我们常常会借助它来进行某些自定义信息的传入。如下我们做了一个最简单的命令行输入参数打印import sys print(sys.argv) // 打印所有命令行参数运行结果使用效果如上图所示能够获取到所有命令行参数。事实上, 我们所拥有的sys.argv参数, 乃是一个列表, 凭借这个, 我们能够依据下标, 直接去获取任意一个输入参数所对应的那个值。python test.py one two three // 运行python脚本带三个命令行参数 print(sys.argv[1]) // 会打印one好啦, 综上所述的那用于输入信息的几种方式我们讲完了, 较大体而言分作三种。借助input等方式, 用户进行交互输入, 经由os.这一处理, 直接去获得操作运行系统环境变量, 凭借sys.argv来取得执行脚本时所用到的命令行文参数。最终, 我们来瞧一瞧脚本的输出情况, 也就是返回的值, 在脚本正常执行完毕之后, 都会返回0。但若, 我们所拥有的脚本出现了错误情况, 而这种情况若发生, 那就要求返回不是零的数值, 以此来表明脚本执行过程当中存在着报错的状况。进行错误处理的时候, 我们一般会运用sys.exit()函数, 然后返回非零值。下面看一个例子import os import sys filename 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脚本执行失败返回好的, 今天我们暂且讲到这里, 今天所讲的内容, 最好能够跟前几期的连贯起来, 从而进行融会贯通, 如此这般, 你便基本上掌握了如何去写好一个自动化脚本的多数基本技能了。其后, 仍是那般话语表明, 你所给予的关注以及点赞, 便是促使我去更新的动力所在。要是大家存有某些想要去学习的内容, 然而却又因为正处于无处着手处理的困扰情形下, 那就来关注我吧, 只需留言便可做到, 我会随时撰写文章予以分享的。