>>> for index, item in enumerate(x):
… if index % 2 == 0:
… print item
…
10
12
14
3. 通过 Python 执行外部命令
在某些时候,您可能需要在 Python 脚本中执行终端命令。这可以通过模块call
下的函数来实现。subprocess有很多方法可以做到这一点,其中一种如下所示:
>>> from subprocess import call
call(‘cal’)
March 2016
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
0
输出中的最后一个零表明我们在脚本中创建的子进程正常结束。换句话说,运行命令没有问题。
如果您需要为命令使用参数,则需要将它们作为列表附加到主命令。例如,要运行 command ls -l
,需要执行以下操作:
如果对Python有兴趣,想了解更多的Python以及AIoT知识,解决测试问题,以及入门指导,帮你解决学习Python中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己Python方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们,可领取最新Python大厂面试资料和Python爬虫、人工智能、学习资料!微信公众号【Python大本营】等你来玩奥~
>>> from subprocess import call
call([‘ls’, ‘-l’])
total 16
-rw-------@ 1 donny staff 439 Oct 21 16:06 chess.csv
-rw-r–r-- 1 donny staff 72 Mar 1 17:28 read.py
0
要检查发生0
错误时会发生什么,我们可以在非 git 存储库中运行 git 命令:
>>> from subprocess import call
call([‘git’, ‘status’])
fatal: Not a git repository (or any of the parent directories): .git
128
在输出中,第二行是命令的输出,而是128
退出代码。
4. 处理异常
Python 是一种解释型语言,这意味着代码是逐行执行的。如果在一行中遇到错误,则代码的进一步执行将停止。但是,您可以使用 try-except 块处理Python 中的已知异常。让我们看一个简单的例子,通过生成除以的运行时错误0
:
>>> x = 1/0
Traceback (most recent call last):
File “”, line 1, in
ZeroDivisionError: integer division or modulo by zero
当解释器到达这一行时,您的程序执行将完全停止!但是,使用 try-except 块可以帮助避免这种情况。
>>> try:
… x = 1/0
… except:
… print “Some error occurred”
…
Some error occurred
当try块中发生这样的错误时,解释器只执行except块。通过捕获单个错误可以进一步扩展except块:
>>> try:
… x = 1/0
… except ZeroDivisionError:
… print “You tried to divide by zero”
… except:
… print “Some unknown error occurred”
…
You tried to divide by zero
您可以提前一步,通过修改except块来捕获异常并进一步处理它(例如在某处记录错误):
>>> try:
… x = 1/0
… except Exception as e:
… print "Exception occurred: " + str(e)
…
Exception occurred: integer division or modulo by zero
5. 使用模块
在看别人的代码时,经常会遇到这样一段代码:
def some_function():
…
if name == ‘main’:
…
当您在 Python 中创建模块时,这经常使用。理想情况下,最后一个块中的代码通常演示了上述函数的一些基本用法。当您在终端中运行该文件时,将执行此代码。但是,如果您在不同的文件中使用此模块以使用该功能,则不会执行此块。令人困惑?让我们通过一个例子更好地理解这一点:
# File print.py
def print_me():
print “me”
demonstrating use of print_me
print_me()
现在,如果我导入此文件以在新文件中使用该函数,请注意会发生什么:
>>> import print
me
导入文件后,该函数就会立即执行。为了避免这种情况,我们将函数放在一个if __name__ == '__main__':
块下:
# File print.py
def print_me():
print “me”
if name == ‘main’:
demonstrating use of print_me
print_me()
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
82296f86381401c05e862fe4e9.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)