load_work参数问题
本帖最后由 JoseM 于 2020-9-22 17:54 编辑loadwork的参数可以是变量吗? 前面程序运行每次会找到不同文件地址,希望是用变量代替这个地址来完成循环,但是会报错,请指教,程序如下dir_path = 'C:\\Users\\gaoqiang5\\Desktop\\mmW_E_Raw\\CDF\\M0_CDF_xlsx\\Single_Beam'
...
print(dir_path)
Beam_Raw= load_workbook(dir_path)
报错如下
File "D:/Pycharmprojects/mmW_Efield_postprocessing/CDF_calcu.py", line 19, in <module>
Beam_Raw= load_workbook(dir_path)
File "D:\Pycharmprojects\mmW_Efield_postprocessing\venv\lib\site-packages\openpyxl\reader\excel.py", line 314, in load_workbook
data_only, keep_links)
File "D:\Pycharmprojects\mmW_Efield_postprocessing\venv\lib\site-packages\openpyxl\reader\excel.py", line 124, in __init__
self.archive = _validate_archive(fn)
File "D:\Pycharmprojects\mmW_Efield_postprocessing\venv\lib\site-packages\openpyxl\reader\excel.py", line 94, in _validate_archive
raise InvalidFileException(msg)
openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support .xlsx" file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm
Process finished with exit code 1 本帖最后由 疾风怪盗 于 2020-9-22 18:37 编辑
JoseM 发表于 2020-9-22 18:26
因为有很多子文件, 所以dir_path没特定指定,后面还会对这个变量加一些字符串,让他指定到特定excel,但 ...
import os
import openpyxl
from openpyxl import Workbook
from openpyxl import load_workbook
path = r'D:\python\test\build'
Beam_file = os.listdir(path)
print(Beam_file)
fileName = "D:\python\\test\\build\\" +Beam_file
print(fileName)
wb = load_workbook(filename = fileName,read_only = True)
['1.xlsx', '4.xlsx']
D:\python\test\build\1.xlsx
Process finished with exit code 0
如果你的文件夹里没有其他类型的文件,都是表格文件,再更改下路径拼接,就不会报错
按你的写法,可以改成这样:
fileName = "D:\python\\test\\build"
fileName =fileName+ "\\"+Beam_file 本帖最后由 疾风怪盗 于 2020-9-22 18:06 编辑
你的dir_path就是文件夹路径啊,没有指向文件,看这个报错:Supported formats are: .xlsx,.xlsm,.xltx,.xltm,要求load_workbook()里添加的是文件路径
你可以先找到文件路径下所有文件,判断取出xlsx文件后缀的文件,再把文件路径+文件名.后缀后,放进load_workbook()里读取 # fileName 这里是指文件路径
fileName = "C:\\Users\\Administrator\\Desktop\\1.xlsx"
# 以只读模式打开工作簿
wb = load_workbook(filename = fileName,read_only = True) 本帖最后由 JoseM 于 2020-9-22 18:28 编辑
再简单描述下问题,在桌面建立一个test文件夹,里面有很多excel,每次运行要选一个做后面的处理,我这么做中间打印的 fileName是"C:\Users\gaoqiang5\Desktop\test\111.xlsx", 这个地址是合理的啊,为什么会load不到?
import os
import openpyxl
from openpyxl import Workbook
from openpyxl import load_workbook
path = r'C:\Users\gaoqiang5\Desktop\test'
Beam_file = os.listdir(path)
fileName = "C:\\Users\\gaoqiang5\\Desktop\\test\\"
fileName = "\""+ fileName+Beam_file + "\""
print(fileName)
wb = load_workbook(filename = fileName,read_only = True) 疾风怪盗 发表于 2020-9-22 18:05
你的dir_path就是文件夹路径啊,没有指向文件,看这个报错:Supported formats are: .xlsx,.xlsm,.xltx,.xl ...
因为有很多子文件, 所以dir_path没特定指定,后面还会对这个变量加一些字符串,让他指定到特定excel,但是还是会报错,下面更新了 JoseM 发表于 2020-9-22 18:26
因为有很多子文件, 所以dir_path没特定指定,后面还会对这个变量加一些字符串,让他指定到特定excel,但 ...
你的目录里除了表格文档,还有没有其他文件?
页:
[1]