Python不工作,但没有给出错误消息

Python不工作,但没有给出错误消息,python,excel,openpyxl,Python,Excel,Openpyxl,一般来说,我对编程/脚本编写还不熟悉,刚刚开始了解python的基本工作原理。无论如何,我这里有一个脚本,我一直在工作,随机找到一个包含excel文件文本的列中的关键字,并在另一列中打印“word”。这里的单词出现在给定的文本中 import openpyxl path5 = "C:\\Users\\AC48330\\Desktop\\my files\\FINAL.xlsx" wb = openpyxl.load_workbook(path5) Sheet = wb['Sheet'] y =

一般来说,我对编程/脚本编写还不熟悉,刚刚开始了解python的基本工作原理。无论如何,我这里有一个脚本,我一直在工作,随机找到一个包含excel文件文本的列中的关键字,并在另一列中打印“word”。这里的单词出现在给定的文本中

import openpyxl

path5 = "C:\\Users\\AC48330\\Desktop\\my files\\FINAL.xlsx"
wb = openpyxl.load_workbook(path5)
Sheet = wb['Sheet']
y = "you"
for i, cellObj in enumerate(Sheet['AW'], 1):
    line = Sheet['AW']
    words = str(line).split()
if y in words:
    index = words.index(y)
    before = index - min(index, 2)
    after = index + min(len(words) - 1 - index, 2) + 1
    print((words[before:after]), Sheet['BB'])

wb.save('finale.xlsx')

如果这似乎是一个愚蠢的问题,请原谅,但我毕竟是新手:(.当我运行上述脚本时,我没有收到任何输出,也没有收到错误消息,导致我不知道自己做错了什么!

非常奇怪的是,您在工作表列上使用
枚举
,然后放弃循环中的结果

要正确获取每个单元格的值,请执行以下操作:

for i, cellObj in enumerate(Sheet['AW'], 1):
    words = cellObj.value
    print (words)
然后,您可以继续执行您的
(如果y为大写)
检查每个单元格

如果您真正想要的是获得列
AW
中所有单元格值的列表,请改用列表:

words = [cellObj.value for cellObj in Sheet["AW"]]
print (words)

在你的
for i,cellObj In#…
行中,你没有为下一行引用
变量,因此它会引发异常。即,你不知从何处使用
。使用步骤调试器跟踪代码执行()你的
for
循环没有打印任何内容。循环完成后,计算单词中的
if y:
,如果为false,则不会打印任何内容。我认为你的缩进是错误的。尝试缩进
if
语句,然后再缩进一个缩进级别后的4行。我尝试了缩进,但仍然不起作用ode>从不在
words
中,因此
if
语句下面的4个缩进行从未执行过。这让我怀疑
words=str(line).split()
可能没有按照您的预期执行,因此您必须对此进行调试。