Python代码执行至print('continue')后无响应,求排查提示
故障排查提示
定位Excel加载卡点
程序卡在SearchTeachers实例化阶段,大概率是load_workbook加载文件时出现问题:- 若
somefile.xlsx或another file.xlsx是大文件,openpyxl加载会耗时较长,看似“停止工作”,可先替换为几行数据的小测试文件验证。 - 确认文件存在且路径正确:
another file.xlsx含空格,需确保桌面确实有该文件,文件名(包括俄语工作表名Лист1)拼写完全一致,Mac系统注意大小写区分。
- 若
修复代码缩进错误
你的类方法__init__和createFile未缩进,属于语法错误,会导致程序异常。正确缩进格式如下:class SearchTeachers: def __init__(self, sheetFileName, sheetGoogleName): self.sheetWithTeachers = load_workbook(sheetFileName)['Лист1'] self.sheet_to_work = load_workbook(sheetGoogleName)['Data'] self.end_row = self.sheet_to_work.max_row self.n = 1 def createFile(self, filenumber): self.filenumber = filenumber newFile = 'phd' + str(self.filenumber) + '.csv' self.FillFile = open(newFile, 'w') self.FillFile.write("username;password;course1;type1") self.FillFile.write('\n') print("file is done" + newFile) return self.FillFile添加调试日志明确卡点
在__init__方法中分步添加打印语句,精准定位是加载哪个文件时卡住:def __init__(self, sheetFileName, sheetGoogleName): print("开始加载第一个Excel文件") self.sheetWithTeachers = load_workbook(sheetFileName)['Лист1'] print("第一个文件加载完成") print("开始加载第二个Excel文件") self.sheet_to_work = load_workbook(sheetGoogleName)['Data'] print("第二个文件加载完成") self.end_row = self.sheet_to_work.max_row self.n = 1检查文件状态与权限
- 确保两个Excel文件未被其他程序(如Excel、Numbers)打开,文件被占用会导致openpyxl无法读取,进而卡住。
- 验证桌面路径权限:在
os.chdir后添加print(os.listdir()),查看是否能列出桌面文件,确认路径正确且有访问权限。
优化文件操作避免资源泄漏
createFile中打开文件后未关闭,建议改用with语句自动管理资源,避免潜在的资源泄漏问题:def createFile(self, filenumber): self.filenumber = filenumber newFile = 'phd' + str(self.filenumber) + '.csv' with open(newFile, 'w') as self.FillFile: self.FillFile.write("username;password;course1;type1\n") print("file is done" + newFile) return newFile
内容的提问来源于stack exchange,提问作者Natalie
相关产品推荐
相关产品推荐

