1、目的:在Python中实现只读取扩展名为xlsx的文件
解决方法:
使用os模块。
方法 | 功能说明 |
remove(path) | 删除指定的文件 |
rename(src,dst) | 重命名文件或目录 |
stat(path) | 返回文件的所有属性 |
listdir(path) | 返回path目录下的文件和目录列表 |
startfile(filepath[,operation]) | 使用关联的应用程序打开指定文件 |
chmod(path,mode,*,dir_fd=None,follow_symlinks=True) | 改变文件的访问权限 |
解决思路:
1、确定目录
2、循环遍历每一个文件
3、筛选符合条件的文件,读取数据
具体代码如下:
import os
# 1、首先定义路径
filepath = 'E:/old/工作/数据库表'
# 2、循环遍历路径下的每一个文件
for filename in os.listdir(filepath):
# 3、列出文件中以.xlsx结尾的文件
if filename.endswith(('.xlsx')):
print(filename)
结果如下:
2、目的:使用Python来遍历指定目录下下各个文件夹中的文件
解决方法:
使用os.path模块的join方法
方法 | 功能说明 |
abspath(path) | 返回绝对路径 |
dirname(p) | 返回目录的路径 |
exists(path) | 判断文件是否存在 |
getatime(filename) | 返回文件的最后访问时间 |
getctime(filename) | 返回文件的创建时间 |
getmtime(filename) | 返回文件的最后修改时间 |
getsize(filename) | 返回文件的大小 |
isabs(path) | 判断path是否为绝对路径 |
isdir(path) | 判断path是否为目录 |
isfile(path) | 判断path是否为文件 |
join(path,*paths) | 连接两个或多个path |
split(path) | 对路径进行分割,以列表的形式返回 |
splitext(path) | 从路径中分割文件的扩展名 |
splitdrive(path) | 从路径中分割驱动器的名称 |
解决思路:
1、定义一个函数,使用这个函数循环遍历,指定目录下的所有子文件夹
2、调用函数,查看所有文件
具体代码:
def get_filelist(dir,Filelist):
if os.path.isfile(dir): #判断path是否为文件
Filelist.append(dir) # 将路径添加到列表中
elif os.path.isdir(dir): #判断路径是否为目录
for s in os.listdir(dir): #遍历目录下的每一个文件
new_dir = os.path.join(dir,s)
get_filelist(new_dir,Filelist) #调用定义的函数
return Filelist
list_ = get_filelist('E:/old/工作/数据库表',[])
print(len(list_))
for l in list_:
print(l)
结果如下: