python自动化脚本,解放你的双手(4)
off999 2024-12-28 14:43 12 浏览 0 评论
通过前面几章的学习,我们学会了如何使用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 数据分析——利用Pandas进行分组统计
-
话说天下大势,分久必合,合久必分。数据分析也是如此,我们经常要对数据进行分组与聚合,以对不同组的数据进行深入解读。本章将介绍如何利用Pandas中的GroupBy操作函数来完成数据的分组、聚合以及统计...
- python数据分析:介绍pandas库的数据类型Series和DataFrame
-
安装pandaspipinstallpandas-ihttps://mirrors.aliyun.com/pypi/simple/使用pandas直接导入即可importpandasas...
- 使用DataFrame计算两列的总和和最大值_[python]
-
【如果对您有用,请关注并转发,谢谢~~】最近在处理气象类相关数据的空间计算,在做综合性计算的时候,DataFrame针对每列的统计求和、最大值等较为方便,对某行的两列或多列数据进行求和与最大值等的简便...
- 8-Python内置函数
-
Python提供了丰富的内置函数,这些函数可以直接使用而无需导入任何模块。以下是一些常用的内置函数及其示例:1-print()1-1-说明输出指定的信息到控制台。1-2-例子2-len()2-1-说...
- Python中函数式编程函数: reduce()函数
-
Python中的reduce()函数是一个强大的工具,它通过连续地将指定的函数应用于序列(如列表)来对序列(如列表)执行累积操作。它是functools模块的一部分,这意味着您需要在使用它之...
- 万万没想到,除了香农计划,Python3.11竟还有这么多性能提升
-
众所周知,Python3.11版本带来了较大的性能提升,但是,它具体在哪些方面上得到了优化呢?除了著名的“香农计划”外,它还包含哪些与性能相关的优化呢?本文将带你一探究竟!作者:BeshrKay...
- 最全python3.11版12类75个内置函数大全
-
获取全部内置函数:importbuiltins#导入模块yc=[]#异常属性nc=[]#不可调用fn=[]#内置函数defll(ty=builtins):...
- 软件测试笔试题
-
测试工程师岗位,3-5年,10-14k1.我司有一款产品,类似TeamViewer,向日葵,mstsc,QQ远程控制产品,一个PC客户端产品,请设想一下测试要点。并写出2.写出常用的SQL语句8条,l...
- 备战各大互联网巨头公司招聘会,最全Python面试大全,共300题
-
前言众所周知,越是顶尖的互联网公司在面试这一part的要求就越高,需要你有很好的技术功底、项目经验、一份漂亮的简历,当然还有避免不了的笔试过关。对于Python的工程师来说,全面掌握好有关Python...
- 经典 SQL 数据库笔试题及答案整理
-
马上又是金三银四啦,有蛮多小伙伴在跳槽找工作,但对于年限稍短的软件测试工程师,难免会需要进行笔试,而在笔试中,基本都会碰到一道关于数据库的大题,今天这篇文章呢,就收录了下最近学员反馈上来的一些数据库笔...
- 用Python开发日常小软件,让生活与工作更高效!附实例代码
-
引言:Python如何让生活更轻松?在数字化时代,编程早已不是程序员的专属技能。Python凭借其简洁易学的特点,成为普通人提升效率、解决日常问题的得力工具。无论是自动化重复任务、处理数据,还是开发个...
- 太牛了!102个Python实战项目被我扒到了!建议收藏!
-
挖到宝了!整整102个Python实战项目合集,从基础语法到高阶应用全覆盖,附完整源码+数据集,手把手带你从代码小白变身实战大神!这波羊毛不薅真的亏到哭!超全项目库,学练一站式搞定这份资...
- Python中的并发编程
-
1.Python对并发编程的支持多线程:threading,利用CPU和IO可以同时执行的原理,让CPU不会干巴巴等待IO完成。多进程:multiprocessing,利用多核CPU...
- Python 也有内存泄漏?
-
1.背景前段时间接手了一个边缘视觉识别的项目,大功能已经开发的差不多了,主要是需要是优化一些性能问题。其中比较突出的内存泄漏的问题,而且不止一处,有些比较有代表性,可以总结一下。为了更好地可视化内存...
- python爬虫之多线程threading、多进程、协程aiohttp批量下载图片
-
一、单线程常规下载常规单线程执行脚本爬取壁纸图片,只爬取一页的图片。importdatetimeimportreimportrequestsfrombs4importBeautifu...
你 发表评论:
欢迎- 一周热门
-
-
python 3.8调用dll - Could not find module 错误的解决方法
-
加密Python源码方案 PyArmor(python项目源码加密)
-
Python3.8如何安装Numpy(python3.6安装numpy)
-
大学生机械制图搜题软件?7个受欢迎的搜题分享了
-
编写一个自动生成双色球号码的 Python 小脚本
-
免费男女身高在线计算器,身高计算公式
-
将python文件打包成exe程序,复制到每台电脑都可以运行
-
Python学习入门教程,字符串函数扩充详解
-
Python数据分析实战-使用replace方法模糊匹配替换某列的值
-
Python进度条显示方案(python2 进度条)
-
- 最近发表
- 标签列表
-
- python计时 (54)
- python安装路径 (54)
- python类型转换 (75)
- python进度条 (54)
- python的for循环 (56)
- python串口编程 (60)
- python写入txt (51)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python qt (52)
- python人脸识别 (54)
- python斐波那契数列 (51)
- python多态 (60)
- python命令行参数 (53)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- centos7安装python (53)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)