在用python处理一个目录的excel时候,发现没有读取整个excel的函数
在网上搜索了下,发现有如此函数可以读取目录所有excel文件及路径
import os
import re
import openpyxl
import pandas
import test_wy
import xlrd
def get_one_type_file_list(InputFilePath, FileSuffix):
# input: 文件夹路径(当前路径直接写路径名,
# 自动去除路径名 最前面 和 最后面 多个连续的/ or \
# FileSuffix:文件后缀,例如"csv","xlsx"
# 中英文路径和文件名都可以使用
# return: 在路径InputFilePath下,符合FileSuffix后缀的所有文件的列表,
# return:带输入路径的文件名,纯文件名
TempPath = InputFilePath
while ((TempPath[0] == '/') or (TempPath[0] == '\\')):
InputFilePath = TempPath[1:]
TempPath = InputFilePath
while ((TempPath[-1] == '/') or (TempPath[-1] == '\\')):
InputFilePath = TempPath[:-2]
TempPath = InputFilePath
FileList = []
PathList = []
FileNames = os.listdir(InputFilePath)
FindStr = r".*?\." + FileSuffix + "$" # 文件名末尾匹配 .+文件名后缀
if (len(FileNames) > 0):
for fn in FileNames:
result = re.match(FindStr, fn)
if result != None:
strTemp = InputFilePath + "\\" + fn
PathList.append((InputFilePath + "\\" + fn))
FileList.append(fn)
if (len(FileList) > 0):
print("get_one_type_file_list(): has ", len(FileList), ' ', FileSuffix, " file: \n")
for i in range(len(PathList)):
print(PathList[i])
# xls_data = pandas.read_excel(PathList[i], engine='openpyxl')
# 请参考读取excel文件的代码
# raw_data.insert(0, sheet_data)
# print(each_sheet.name, ":Data has been done.")
print("\n\n")
return (PathList, FileList)
'''
---------------------------------2021-04-21 测试---------------------------------
'''
if __name__ == "__main__":
strInputDir = r"C:\\Users\\lenovo\\Desktop\\test\\" # 要整理的文件夹
strFileSuffix = "xlsx"
如果需在其他.py 使用这个文件需
import excel_NAME
'''
---------------------------------分割文件名和字符串---------------------------------
# 和 '''''' 和ctri +/ 三种注释方法
'''
for str1 in lstFileName:
list1 = str1.split(" ", -1)
people_name.append(list1[1])
stroe_name.append(list1[2].split(".", -1)[0])
'''
附
在处理python 处理excel的大坑
1.sheet,excel表格隐藏后人看不见,但是pyhon能读到
2.excel筛选后,人看不见,python能读取
3.类型转账,数据结构,例如dataframe 取列,取值 和 series,list互转。str和int互转
numpy的array,和list。
4.dataframe 的左右连接 join和上下连接apeend
5. 注意[[’ ‘]]和[’‘]的区别
6. 类型一 int 和str 类型互转
淘宝订单编号 = map(str, 淘宝订单编号)
类型二 int 和 str 互转
淘宝订单编号 = ','.join(str(stored) for stored in 淘宝订单编号)
单个series的float转int
淘宝订单编号 = order1['淘宝订单编号'].tolist() # 先series 转list
for ix in range(len(淘宝订单编号)):
if 淘宝订单编号[ix] == 淘宝订单编号[ix]:
淘宝订单编号[ix] = str(round(淘宝订单编号[ix])) # 可以索引,可以insert函数