我的代码昨天工作正常,但是今天当我再次尝试运行它时,它给我抛出了一个错误,并且我试图找出答案,但是我做不到。希望你能在这里帮助我。非常感谢!
import fnmatch
import os
import scipy as s
import pandas as pd
import win32com.client as win32
for file in os.listdir('.'):
if fnmatch.fnmatch(file, '*.xlsx'):
print(file)
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(file)
excel.Visible = False
excel.DisplayAlerts = False
wb.DoNotPromptForConvert = True
wb.CheckCompatibility = False
ws = wb.Worksheets('Exec Summary')
ws.Activate
canvas = ws.Shapes
for shp in canvas:
if shp.TextFrame.Characters:
print("Comments Found")
print(shp.TextFrame2.TextRange)
break
wb.Close(True)
这是系统抛出的错误:
---> 11 wb = excel.Workbooks.Open(文件)
com_error:(-2147352567,“发生异常。”,(0,“ Microsoft Excel”,“对不起,我们找不到ZPC.xlsx。是否有可能将其移动,重命名或删除?”,'xlmain11 .chm',0,-2146827284),无)
我已经检查并确认文件已在目录中。你们以前遇到过吗?
答案 0 :(得分:0)
您可以尝试打印file
并查看会发生什么吗?
这里可能发生的情况是您没有在os.listdir('.')
中正确指示目录路径。
os.listdir('.')
将检查您正在运行的python脚本所在的默认目录。
如果是同一文件夹,它将起作用。
但是,如果不是,则必须专门包括文件夹的确切路径。确切的文件路径应如下所示的示例:
filepath = r'C:\Users\yournamehere\Desktop\yourfolderhere\\' + 'ZPC.xlsx'
os.listdir外观示例:
dirpath = r'C:\Users\yournamehere\Desktop\yourfolderhere\\'
for file in os.listdir(dirpath):
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(dirpath + file)
此外,如果您希望以更优雅的方式加入dirpath
和file
您可以使用
os.path.join(dirpath, file)
答案 1 :(得分:0)
我知道现在回答这个问题可能为时已晚,但请尝试使用
使用 wb = excel.Workbooks.Open(dirpath + file)前的"excel.Visible = True"。