前言
本章将会讲解Python编程实现自动化办公案例(2)前期回顾Python编程自动化办公案例(1)
获取某文件夹下所有文件的路径 。
一.前期代码
代码语言:javascript复制import xlrd
#1.打开张三xlsx excel工作簿
path = r"C:Users86134PycharmProjectszdhzs.xlsx"
data = xlrd.open_workbook(path)
#获取第一个工作表对象
# table=data.sheets()
#获取到第一题的选项单元格
#注意: list index out of range 下标超出索引范围
#注意:里面的下标也是从0开始
# table.cell_value(rowx=3,colx=4)#行,列下标
二.实现批量读取
1.os库
标准库,与操作系统交互的模块
Python的os库提供了通用的、基本的操作系统交互功能。os库是Python中的标准库,其中包含几百个子库。
代码语言:javascript复制import os
2.实现思路
(1).实现批量的读取某文件下的每个Excel文件数据
(2)获取文件夹下的所有文件的名称
代码语言:javascript复制#批量的读取某文件夹下的每个Excel文件数据
#获取某个文件下所有Excel文件的路径
#标准库 os
import os
path = r"C:Users86134Desktopzdh"
all_filename = os.listdir(path)
print(all_filename)
#['LL.xls', 'ls.xls', 'ww.xls', 'zs.xls']
(3)文件路径=文件夹路径 文件名称
如:
- C:Users86134Desktopzdhzs.xls
- C:Users86134Desktopzdhls.xls
- C:Users86134Desktopzdhww.xls
- C:Users86134Desktopzdhll.xls
会发现前面都是一样的,会不会有一种机制可以吧列表中的元素取出来然后再去跟对应路径拼接?
代码语言:javascript复制for filepath in all_filename:
print(filepath)
#LL.xls
#ls.xls
#ww.xls
#zs.xls
(4)使用for进行实现
代码语言:javascript复制for filepath in all_filename:
# print(filepath)
filepath = path filepath
print(filepath)
#C:Users86134DesktopzdhLL.xls
#C:Users86134Desktopzdhls.xls
#C:Users86134Desktopzdhww.xls
#C:Users86134Desktopzdhzs.xls
在此发现输出的结果缺少“”这便会出现问题,我们如何进行改进呢?
代码语言:javascript复制for filepath in all_filename:
# print(filepath)
filepath = path "\" filepath
print(filepath)
C:Users86134DesktopzdhLL.xls
C:Users86134Desktopzdhls.xls
C:Users86134Desktopzdhww.xls
C:Users86134Desktopzdhzs.xls
注意,表示层级关系,在Python中需要使用作为转义字符,也就是说\-->
使用这种方式虽然可以但是需要考虑的太多了,为此还有更好的方法吗?
(5)链路拼接
代码语言:javascript复制for filepath in all_filename:
#链路拼接:
filepath=os.path.join(path,filepath)
print(filepath)
(6)定义空列表
代码语言:javascript复制all_filepath = []
3.本期全部代码
代码语言:javascript复制#批量的读取某文件夹下的每个Excel文件数据
#获取某个文件下所有Excel文件的路径
#标准库 os
import os
path = r"C:Users86134Desktopzdh"
all_filename = os.listdir(path)
all_filepath = []
for filepath in all_filename:
#链路拼接:
filepath=os.path.join(path,filepath)
print(filepath)
#链路拼接:
filepath=os.path.join(path,filepath)
all_filepath.append(filepath)
print(all_filepath)