今天学习了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语句来查询模块的存放路径,怎么就找不到了呢?很费解,所以才有正文前的疑问。
请大家原谅一个初学者的无知,上述问题也请好心人帮忙解答一下,在文章后给我留言,十分感谢!