鱼C论坛

 找回密码
 立即注册
查看: 1993|回复: 6

[已解决]load_work参数问题

[复制链接]
发表于 2020-9-22 17:53:14 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 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 17:53:15
本帖最后由 疾风怪盗 于 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[0]
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[0]

最佳答案

查看完整内容

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[0] 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 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-22 17:53:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 疾风怪盗 于 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[0]
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[0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-22 18:05:02 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-9-22 18:06 编辑

你的dir_path就是文件夹路径啊,没有指向文件,看这个报错:Supported formats are: .xlsx,.xlsm,.xltx,.xltm,要求load_workbook()里添加的是文件路径

你可以先找到文件路径下所有文件,判断取出xlsx文件后缀的文件,再把文件路径+文件名.后缀后,放进load_workbook()里读取
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-22 18:07:00 | 显示全部楼层
# fileName 这里是指文件路径
fileName = "C:\\Users\\Administrator\\Desktop\\1.xlsx"
# 以只读模式打开工作簿
wb = load_workbook(filename = fileName,read_only = True)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-22 18:25:12 | 显示全部楼层
本帖最后由 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[0] + "\""
print(fileName)
wb = load_workbook(filename = fileName,read_only = True)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-22 18:26:40 | 显示全部楼层
疾风怪盗 发表于 2020-9-22 18:05
你的dir_path就是文件夹路径啊,没有指向文件,看这个报错:Supported formats are: .xlsx,.xlsm,.xltx,.xl ...

因为有很多子文件, 所以dir_path没特定指定,后面还会对这个变量加一些字符串,让他指定到特定excel,但是还是会报错,下面更新了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-22 18:29:10 | 显示全部楼层
JoseM 发表于 2020-9-22 18:26
因为有很多子文件, 所以dir_path没特定指定,后面还会对这个变量加一些字符串,让他指定到特定excel,但 ...

你的目录里除了表格文档,还有没有其他文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 15:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表