python基础中 if_name == main

讲一下这段代码作用
毕竟我们经常看到

if __name__ == '__main__':

看别人写的代码经常会看到这个东西
这行代码的作用是什么呢?本节就详解讲解以下它的作用。

一般情况下,当我们写完自定义的模块之后,都会写一个测试代码,检验一些模块中各个功能是否能够成功运行。例如,创建一个 candf.py 文件,并编写如下代码:

'''
摄氏度和华氏度的相互转换模块
'''
def c2f(cel):
    fah = cel * 1.8 + 32
    return fah
def f2c(fah):
    cel = (fah - 32) / 1.8
    return cel
def test():
    print("测试数据:0 摄氏度 = %.2f 华氏度" % c2f(0))
    print("测试数据:0 华氏度 = %.2f 摄氏度" % f2c(0))
test()

我们创建一个模块之后,经常要写一个测试模块,测试一下这个模块是不是正常运行的。

单独运行此模块文件,可以看到如下运行结果

测试数据:0 摄氏度 = 32.00 华氏度
测试数据:0 华氏度 = -17.78 摄氏度
单独运行这个模块,运行结果是这样的。可以输出两个东西

candf.py 模块文件的基础上,在同目录下再创建一个 demo.py 文件,并编写如下代码:

import candf
print("32 摄氏度 = %.2f 华氏度" % candf.c2f(32))
print("99 华氏度 = %.2f 摄氏度" % candf.f2c(99))

导入我们编写的模块,输出一些功能

测试数据:0 摄氏度 = 32.00 华氏度
测试数据:0 华氏度 = -17.78 摄氏度
32 摄氏度 = 89.60 华氏度
99 华氏度 = 37.22 摄氏度

可以看到将模块中,原来的Print也进行输出了这不是我们想要的结果,将原来的模块也进行了输出。

可以看到,当前运行的程序,其 name 的值为 main,而导入到当前程序中的模块,其 name 值为自己的模块名。

因此,if name == ‘main’: 的作用是确保只有单独运行该模块时,此表达式才成立,才可以进入此判断语法,执行其中的测试代码;反之,如果只是作为模块导入到其他程序文件中,则此表达式将不成立,运行其它程序时,也就不会执行该判断语句中的测试代码。

进行判断,我这个模块被单独运行时候,执行的一些操作。

os模块还有一个walk函数,用来遍历目录树,

在这里插入图片描述
这样目录树,我们需要在目录树中,去找到mp4文件,这样的目录目录里面有目录。、

当然glob模块会更加好用一些

在这里插入图片描述
在这里插入图片描述
glob切换目录

path = 'uploads'  # 该路径是在 static/uploads
def get_all_images(path):
    os.chdir('static')  # 改变工作目录到 static
    fs = glob.glob(path + '/*.jpg')  # uploads/*.jpg  要直接查找uploads下的文件,需要工作目录是uoloads的父级目录
    os.chdir('..')  # 改变工作目录回到todo
    return fs

在这里插入图片描述
可以处理所有子目录下文件
在这里插入图片描述

/”表示处理所有文件夹
"
"表示处理所有文件加文件夹
"**/*.py"表示处理所有带Py结尾的文件

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值