Python测试开发预习课7/16

在这里插入图片描述

1、os.walk遍历目录和文件:

#os.walk
import os

for root,dirs,files in os.walk("e:\\test"):
    #遍历test目录下的所有子目录和文件
    print ("当前正在遍历的目录:",root)
    
    for dir in dirs:
        print("子目录:",dir)

    for file in files:
        print("文件:",file)

    print("*"*10)

在这里插入图片描述
注意:隐藏的文件也会打印出来!!!

2、小题目想获取所有子目录的绝对路径

#想获得文件的绝对路径
#拿到某个文件所有的文件的目录以及文件的路径
#os.walk
import os
dir_path = []#绝对路径
file_path = []#文件路径

for root,dirs,files in os.walk("e:\\test"):
    #遍历test目录下的所有子目录和文件
    print ("当前正在遍历的目录:",root)
    
    for dir in dirs:
        print("子目录:",dir)
        sub_dir_path = os.path.join(root,dir)
        dir_path.append(sub_dir_path)

    for file in files:
        print("文件:",file)
        path = os.path.join(root,file)
        file_path.append(path)

    print("*"*10)

print(dir_path)
print(file_path)

在这里插入图片描述

判断一下文件夹中有多少个py文件
三种方法判断文件的结尾
方法1:切片
py_file_num = 0
for path in file_path:
    if path[-3:] ==".py":
        py_file_num+=1
print("python的文件个数是:%s"%py_file_num) 

在这里插入图片描述

方法2:splitext
>> import os
>>> path="e:\\test\\a.py"
>>> os.path.splitext(path)
('e:\\test\\a', '.py')
>>> os.path.splitext(path)[1]
'.py'
>>> if os.path.splitext(path)[1]==".py":
...     print(".py找到了")
...
.py找到了

在这里插入图片描述

方法3:endswith
>>> if path.endswith(".py"):
...     print(".py文件找到了")
...
.py文件找到了

在这里插入图片描述

3、模块:python文件

包:是一个目录(包含python文件)
Pythonpath:查找模块或者包的路径
注意:两个必须在同一个目录下
import compute #模块名—》python的文件名
#这个模块需要在同一个目录下,否则可能会找不到
print(compute.add(1,2)) #调用compute模块中的add函数
在这里插入图片描述

4、if name==“main”:判断当前文件名

def add(a,b):
    return a+b
if __name__=="__main__":
    #只有a.py文件本身被执行的时候,if下的代码才会被执行,
    #如果此文件被别的文件import那么不会执行if下的代码块
    print("a module is invoked!")

在这里插入图片描述

5、pythonpath的查找

import compute #模块名—》python的文件名
#当程序有import 的时候,python自动去查找这个模块
#3个路径去查找
#1 当前路径
#2 系统设置的pythonpath路径里去找
#3 在python site-package下去找
#这个模块需要在同一个目录下,否则可能会找不到
print(compute.add(1,2)) #调用compute模块中的add函数

import sys
print(sys.path)
第一:pythonpath路径下
在这里插入图片描述

6、找不到包

1 没装

2 路径不对,pythonpath
import sys
sys.path.append(“d:\”)
import sys
sys.path.append(“d:\”)#临时加的,程序结束,这个路径就没了
import sys
sys.path.append(“d:\”)#临时加的,程序结束,这个路径就没了

from compute1 import add #减少了前缀的编写,产生冲突

def add(a,b):#就近的优先
print(“啥也没干!”)

print(add(1,2))
#compute1:就一个命名空间,compute1.xxxx方式。防止冲突
#from compute1 表示把compute1下面的所有名字,引入到当前文件
#命名空间
import compute1.compute1

print(compute1.compute1.add(3,4))
from compute1.compute1 import add #从包下引入一个模块

print(add(3,4))
刚才的包名和执行文件不在一个路径下引用是不是也要用绝对路径
import compute1.compute1(第一个是目录的名字,第二个是python文件的名字)

print(compute1.compute1.add(3,4))
from compute1.compute1 import add #从包下引入一个模块

print(add(3,4))
#找包找模块都是遵循相同的查找方法
#当前路径、pythonpath、site-package下

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页