目录
虚拟环境详解
在虚拟环境中,不同的Python
网络运维自动化工程项目是隔离的。在不同的虚拟环境中,同样的第三方模块是独立的,即版本不需要一致。比如,某虚拟环境下python版本是3.7.5
,另一个虚拟环境下是3.9。这就极大的提升了实验或实战的灵活度。这些工程都是相互隔离的,不会相互影响或者其它任何瓜葛。此外,各个虚拟环境的第三方模块安装等与Python
主环境同样没有任何依赖和被依赖的关系。
虚拟环境的创建
python -m venv venv_paramiko
venv_paramiko
是venv
的一个参数,即虚拟环境名称,由用户自定义
创建完虚拟环境之后,我们还要进行激活:
venv_paramiko\Scripts\activate
我们使用这个命令进入Scripts文件夹,激活activate命令,按下回车键之后会激活虚拟环境
这时前面显示我们创建的虚拟环境名称就表示我们成功激活了虚拟环境
虚拟环境的检查
我们可以使用pip list
命令,在虚拟环境和主环境各开一个cmd窗口测试比较
此时虚拟环境犹如新安装的Python
,如一张白纸,啥都没有。 这像极了你在路由器中新开了一个虚拟路由器
此时可以在虚拟环境中执行各种pip
操作,这与主环境的操作是完全一致的
在python中使用虚拟环境
首先我们打开pycharm点击File选择settings
然后根据图示添加新的本地解释器
然后选择existing,点击右方的省略点选择路径
然后找到我们虚拟环境创建的文件夹选择python,点击ok就使用成功了
然后我们点击ok
如果只有初始的几个软件包那就说明应用成功了,此时可以在pycharm中执行各种pip
操作,这与主环境的操作是完全一致的
打开文件操作
可以使用python内置的open()函数打开一个文件,创建文件
fp = open(path,[mode])
path:打开文件路径
mode:控制文件打开权限
文件模式权限
r: 默认权限,读权限打开文件,当打开不存在文件时,会抛出FileNotFoundError
w: 写权限打开文件,当文件不存在时,创建文件,打开内容文件时,会将文件清空
a: 追加权限打开文件,文件不存在,创建文件,不会清空已有内容,读写指针在文件末尾
python关闭文件的方法
文件对象 close() 方法刷新缓冲区还没有写入的信息,并关闭该文件,之后便不能进入写入
文件对象引用被重新指定另一个文件python会关闭之前文件
fp.close()
python文件的写
write()方法将如何字符串写入一个打开的文件,注意:python字符串可以二进制而不是仅仅是文字
write()方法不会在字符串的结尾添加换行('\n'):fp.write(string)
writelines()向文件写入一个列字符串列表:fp.weitelones
文件的读操作
read()方法从一个打开的文件中读取的内容,默认读取全部内容并返回。
需要注意:不适合读取较大文件,因为这个方法会一次性默认读取全部
readline()会从文件中读取单独一行一行的标志\n,或文件结尾EOF
readline()返回一个空字符串,说明已经读取到最后一行
readlines()将以列表的形式返回该文件中包含的所有行
递归详解
递归是一种在编程中经常使用的概念,指的是一个函数在其定义中引用了自身。简单来说,递归是通过将一个大问题拆分为更小的相似子问题并重复解决这些子问题来解决复杂问题的一种方法。
在递归函数中,函数会调用自身来解决较小的子问题。每次调用函数时,问题规模都会减小,直到达到了一个基本情况或边界情况,这时递归停止并返回结果。递归函数通常包含两个部分:基本情况和递归调用。
递归在许多算法和数据结构中都得到应用,如树的遍历、图的深度优先搜索、快速排序等。尽管递归是一个强大的工具,但在使用时需要小心,确保递归函数能够收敛到基本情况,否则可能导致无限循环并耗尽系统资源。
隐式递归
隐式递归是一种递归算法的实现方式,其中递归调用并没有明确地出现在代码中,而是通过函数或方法内部的循环来隐式地实现递归。
在隐式递归中,函数或方法通过不断迭代自身来实现递归调用,而不是显式地使用递归关键字或语句。这样做的好处是避免了递归调用带来的函数调用开销和堆栈空间的使用,使得算法更加高效
一个常见的示例是使用循环来计算阶乘。而不是使用传统的递归调用方式,我们可以使用一个循环来迭代地计算乘积。这种方式被称为隐式递归