我有一个显示所选目录中存在的文件列表的功能,然后用户输入一个搜索到的单词,程序在后台读取这些文件以找到匹配的单词,最后它覆盖现有的列表只显示包含匹配单词的文件。
问题在于 while循环 系统显示此错误:
而索引< LEN(self.listWidgetPDFlist.count()):
builtins.TypeError:'int'类型的对象没有len()
def listFiles(self):
readedFileList = []
index = 0
while index < len(self.listWidgetPDFlist.count()):
readedFileList.append(self.listWidgetPDFlist.item(index))
print(readedFileList)
try:
for file in readedFileList:
with open(file) as lstf:
filesReaded = lstf.read()
print(filesReaded)
return(filesReaded)
except Exception as e:
print("the selected file is not readble because : {0}".format(e))
答案 0 :(得分:0)
count()
返回项目数,因此它是一个整数,函数len(
)仅适用于iterable,而不是整数,所以你得到了这个错误,而且没有必要。你必须做到以下几点:
def listFiles(self):
readedFileList = [self.listWidgetPDFlist.item(i).text() for i in range(self.listWidgetPDFlist.count())]
try:
for file in readedFileList:
with open(file) as lstf:
filesReaded = lstf.read()
print(filesReaded)
# return(filesReaded)
except Exception as e:
print("the selected file is not readble because : {0}".format(e))
注意:不要使用return,你将在第一次迭代中完成循环。