python自动化脚本,解放你的双手(4)
借助于前面几章里经历的学习过程 , 我们已然掌握了怎样运用脚本, 针对操作系统施行对文件文件夹的增添、删除、修改以及查询操作 , 去执行操作系统的系统类命令 , 接着运用正则表达式来处置返回的结果 , 随后针对返还的这些结果展开二次的加工举动与加以使用。
此次, 为令咱们的自动化脚本益发灵活, 咱们就得去学习怎样让咱们的脚本处理外部输入与输出, 借由外部输入的各异, 来操控脚本的不同功能。
最简单的输入示例:
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("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可以继续进行时间转换,输出其它任意字符退出。
这里比较关键的两个函数的使用:
把那个能读取标准输入, 返回一个字符串类型变量的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脚本执行失败返回
好的, 今天我们暂且讲到这里, 今天所讲的内容, 最好能够跟前几期的连贯起来, 从而进行融会贯通, 如此这般, 你便基本上掌握了如何去写好一个自动化脚本的多数基本技能了。
其后, 仍是那般话语表明, 你所给予的关注以及点赞, 便是促使我去更新的动力所在。要是大家存有某些想要去学习的内容, 然而却又因为正处于无处着手处理的困扰情形下, 那就来关注我吧, 只需留言便可做到, 我会随时撰写文章予以分享的。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)