算法思路:
在Python中我们一般使用os模块来操作文件夹或文件,os为Python的内置模块,使用时直接导入即可:os模块中有许多方法,
在这里需要使用的有listdir()---listdir ------- 返回对应目录下的所有文件(包含你所隐藏的文件),返回的结果是列表
abspath()---abspath(相对路径) ----- 返回的是相对路径所对应的绝对路径
isdir ------- 判断是Path(目录)
listdir -------
返回对应目录下的所有文件(包含你所隐藏的文件),
注意:返回的结果是列表
join()---- 以特定的格式将一个可迭代的对象转换成字符串,Example: '.'.join(['ab', 'pq', 'rs']) ->
'ab.pq.rs'
方法一
仅仅是遇到文件夹输出,不会输出文件夹里面的文件夹或文件。若要遍历文件夹下的所有文件,请看方法二。
import os
from os import path
#定义一个函数
def scaner_file (url):
#遍历当前路径下所有文件
file = os.listdir(url)
for f in file:
#字符串拼接
real_url = path.join (url , f)
#打印出来
print(real_url)
#调用自定义函数
scaner_file("D:\\")
?运行效果
方法二
遍历文件夹下的所有文件----在方法一的基础上改进(通过增加判断代码进行)
import os
from os import path
def scaner_file (url):
file = os.listdir(url)
for f in file:
real_url = path.join (url , f)
if path.isfile(real_url):
print(path.abspath(real_url))
# 如果是文件,则以绝度路径的方式输出
elif path.isdir(real_url):
#如果是目录,则是地柜调研自定义函数 scaner_file (url)进行多次
scaner_file(real_url)
else:
print("其他情况")
pass
print(real_url)
scaner_file("D:\\")
运行结果
?注意;此时的运行结果显示拒绝访问------自身电脑权限问题(跳过无法访问的文件夹)
?
|