百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

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可以继续进行时间转换,输出其它任意字符退出。

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

  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变量,然后尝试一下。

如下图所示:

再次尝试使用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的输入信息的几种方式我们就讲完了,大体来说分为三种。

  1. 通过input 等,用户交互输入
  2. 通过os.environ,直接获取系统环境变量
  3. 通过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...

取消回复欢迎 发表评论: