我是python初学者,我尝试构建一个脚本,将所有现有excel工作簿合并到同一文件夹中的新工作簿中。但是我遇到一个错误,指出找不到excel文件...。 。参见下面的编码:
import win32com.client as win32
import os
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
path = r"/Users/lb/Desktop/consolidation"
suffix = "xlsx"
dirs = os.listdir(path)
for file in dirs:
if file.endswith(suffix):
w = excel.Workbooks.Open(file)
w.Sheets(1).Copy(wb.Sheets(1))
wb.SaveAs(os.path.join(path, "result.xlsx"))
excel.Application.Quit()
这是我运行脚本时的错误:
文件“ C:/ Users / lb / PycharmProjects / New Project / fusion2.py”,第12行,w = excel.Workbooks.Open(文件)文件“ C:\ Users \ lb \ AppData \ Local \ Temp \ gen_py \ 3.7 \ 00020813-0000-0000-C000-000000000046x0x1x7 \ Workbooks.py“,第78行,位于Open,Converter,AddToMru,Local,CorruptLoad)pywintypes.com_error:(-2147352567,“发生了异常。”,(0,“ Microsoft Excel',“'business_Descriptor.xlsx'找不到。检查文件名的拼写,并验证文件位置是否正确。
如果您尝试从最近使用过的文件列表中打开文件,请确保未重命名,移动或删除该文件。“,'xlmain11.chm,0,-2146827284),无)
我相信您的路线可能不对。通常来说,Windows中的users目录应该如下所示:
C:\\Users\\lb\\Desktop\\consolidation
如果不确定路径,也可以通过在python脚本中浏览路径来调试路径,直到使用os.chdir()命令和os.listdir()命令找到文件夹为止。当您在所需的文件夹中时,可以使用os.getcwd()命令。
我还建议这个如果你想熟悉Python的文件系统读取。
继续上一部分,似乎在您的代码中,
for file in dirs:
if file.endswith(suffix):
w = excel.Workbooks.Open(file)
w.Sheets(1).Copy(wb.Sheets(1))
您正在尝试使用文件本身的字符串名称而不是路径打开文件。如果您通过此链接查看下面的代码片段,您会发现它们将名称附加到路径目录中。这应该可以解决您的问题:P
import os
for filename in os.listdir('path/to/dir'):
if filename.endswith('.log'):
with open(os.path.join('path/to/dir', filename)) as f:
content = f.read()
本质上,您需要做的就是改变您的
w = excel.Workbooks.Open(file)
-> w = excel.Workbooks.Open(os.path.join(path,file))
因此,该部分代码的最终结果应如下所示(请注意if处的缩进!如果没有inif语句,它们将不起作用):
for file in dirs:
if file.endswith(suffix):
w = excel.Workbooks.Open(os.path.join(path,file))
w.Sheets(1).Copy(wb.Sheets(1))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句