Python不工作,但没有给出错误消息
一般来说,我对编程/脚本编写还不熟悉,刚刚开始了解python的基本工作原理。无论如何,我这里有一个脚本,我一直在工作,随机找到一个包含excel文件文本的列中的关键字,并在另一列中打印“word”。这里的单词出现在给定的文本中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 =
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()
可能没有按照您的预期执行,因此您必须对此进行调试。