Python主脚本调用子脚本异常:main.py仅执行首个函数后续无响应
问题解决:main.py仅执行第一个函数的原因及修复
核心错误修正
你的main.py存在两个关键问题,其中第一个是导致逻辑执行异常的根本原因:
- 入口条件字符串错误:Python脚本的标准入口判断是
if __name__ == '__main__',你写成了'main'(缺少前后各两个下划线)。直接运行main.py时,__name__变量的值是'__main__',原条件不成立,代码块内的逻辑本应完全不执行——你描述的部分执行情况可能是运行方式或代码缩进有误,但这个错误必须优先修正。 - 变量打印错误:
print('folder_name')是打印字符串字面量,若要输出输入的文件夹名称,应改为print(folder_name)(去掉引号)。
修正后的main.py代码:
import sftpConnector import fileIterator if __name__ == '__main__': folder_name = input('File name: ') print(folder_name) sftpConnector.establisher(folder_name) fileIterator.iterator(folder_name)
额外排查方向
如果修正后第二个函数仍不执行,可排查以下两点:
- 检查
sftpConnector.establisher函数内是否包含sys.exit()或其他终止程序的代码,这类代码会导致程序在完成第一个函数后直接退出,无法执行后续逻辑。若有,需移除相关语句。 - 给
fileIterator.iterator的调用添加异常捕获,排查是否存在静默失败的异常:
try: fileIterator.iterator(folder_name) except Exception as e: print(f"执行iterator函数出错: {e}")
内容的提问来源于stack exchange,提问作者excelsiro
相关产品推荐
相关产品推荐

