Python 模块查询程序(学习笔记+一个无聊的小程序)

今天学习了Python模块的内容,因为是初学者,有一个问题不太明白,如果有路过的大神请留言不吝赐教:Python的模块一定是后缀名为py的文件吗?

Python通过import导入模块,模块文件存放在电脑的什么地方呢?可以通过以下方式进行查询:
这里写图片描述
系统默认的路径中,居然有一个路径指向了一个压缩包,很费解。(如上图红框标记)

因此有一个想法,编辑一个小程序来实现模块的查询,代码如下:

import sys,os

#定义指定路径目录下模块与所创建模块匹配的函数
def dir_list(folder_path,module_name):
    folder_list = os.listdir(folder_path)
    for file_name in folder_list:
        file_path = os.path.join(folder_path,file_name)
        if os.path.isfile(file_path):
            if file_name == module_name:
                print("找到该模块,存放路径为:",end = "")
                print(file_path,"\n")
                return True             
        if os.path.isdir(file_path):
            dir_list(file_path,module_name)

module_name = input("请输入模块名:")
print("")
folder_path_list = sys.path
i = 0
for folder_path in folder_path_list:
    try:
        sign = dir_list(folder_path,module_name)
        if sign:
            i += 1
    except:
        print("路径为非文件夹\n")

if i:
    print("共找到",i,"个")
else:
    print("未找到该模块\n")

运行结果如下:
这里写图片描述
之所以有一个“路径为非文件夹”的提示,是因为上面提到的那个指向压缩文件的路径,为了不让系统抛出错误提示中断程序的运行,代码里通过try except语句进行了异常处理。但是结果中还是重复打印了两次(其他查询可能会出现三次或更多)相同路径相同文件名,返回却提示只找到1个。问题还在查找中,哈哈,never mind。大家看出哪里出了问题也好心留下改进意见。
让我产生疑问的是下面这次查询:
这里写图片描述
居然没有找到sys.py模块,之前还是通过import sys,用sys.path语句来查询模块的存放路径,怎么就找不到了呢?很费解,所以才有正文前的疑问。

请大家原谅一个初学者的无知,上述问题也请好心人帮忙解答一下,在文章后给我留言,十分感谢!

猜你喜欢

转载自blog.csdn.net/momobaba2018/article/details/82503769