网站首页 > 技术文章 正文
通过前面几章的学习,我们学会了如何使用python脚本,对操作系统执行文件文件夹的增删改查,执行操作系统系统命令并使用正则表达式处理返回结果,并对返回结果进行二次加工和使用。
本次,我们为了使我们的python自动化脚本更为灵活,我们就需要学习下如何使我们的python脚本处理外部输入和输出,通过外部输入的不同,来控制脚本的不同功能。
最简单的输入示例:
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类型,参与运算
上面的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变量,然后尝试一下。
如下图所示:
再次尝试使用python脚本打印FRUIT 环境变量的值,结果如下:
>>> print("FRUIT: " + os.environ.get("FRUIT", ""))
FRUIT: Apple // export 变量之后,我们就可以读取到结果了
我们可以通过os.environ 方法获取操作系统当前环境变量信息,这也是我们在进行自动化脚本编写过程中, 一个重要的输入来源。
下面我们介绍第三种输入方式,那就是命令行参数,我们经常会使用命令行参数进行一些自定义信息的传入。
如下,我们做了一个最简单的命令行输入参数打印:
import sys
print(sys.argv) // 打印所有命令行参数
使用效果如上图所示,能够获取到所有命令行参数。
实际上,我们的sys.argv 参数是一个python 的列表,我们可以根据下标直接获取任何一个输入参数的值。
python test.py one two three
// 运行python脚本,带三个命令行参数
print(sys.argv[1])
// 会打印one
好了,综上,python的输入信息的几种方式我们就讲完了,大体来说分为三种。
- 通过input 等,用户交互输入
- 通过os.environ,直接获取系统环境变量
- 通过sys.argv 获取执行python脚本时的命令行参数
最后,我们看下python 脚本的输出,即返回值,正常执行完python脚本,都会返回0。
不过如果,我们的python脚本有错误的话,那么需要返回非零数值以表示脚本执行存在报错。
我们通常会使用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脚本执行失败返回
好的,今天我们暂时就讲这么多,今天的内容最好跟前几期连贯在一起进行融汇贯通,那么这样的话,你就基本掌握了如何写好一个python自动化脚本的大多数基本技能了。
最后,还是那句话,你的关注点赞就是我更新的动力。。如果大家有什么想要学习的内容,却又苦于无处下手,关注我,留言即可,我随时写文章进行分享。
- 上一篇: Python索引技巧
- 下一篇: 你想不到的,那些在 Python 中输出列表的技巧
猜你喜欢
- 2025-05-14 Python爬虫实战 | 利用多线程爬取 LOL 高清壁纸
- 2025-05-14 你想不到的,那些在 Python 中输出列表的技巧
- 2025-05-14 Python索引技巧
- 2025-05-14 在 Python 中从列表中删除换行符的多种方法
- 2025-05-14 Python的元组,没想象的那么简单
- 2025-05-14 对Python中序列的个人理解
- 2025-05-14 简单学Python——字符串
- 2025-05-14 python笔记5:序列
- 2025-05-14 Python 技巧讲解:numpy.array 操作使用简单总结(含示例代码)
- 2025-05-14 python生成器(Generator)
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)