我用python编写了一个脚本,它执行以下操作:以文件夹路径作为输入,该路径可能包含许多子目录,其中包含.json文件
从所有文件夹中逐个加载.json文件,逐行读取每个文件,并将其解析为键、值列表并写入excel文件。在
当我从命令提示符下运行这个脚本时,它工作得很好。但是我想把它作为一个可执行文件分享给我的团队,我已经用pyinstaller把它转换成了一个exe。那是我得到错误的时候RecursionError: maximum recursion depth exceeded
我发现这个错误是因为一个函数是尾部递归的。我是python新手,所以我发现很难重写这个函数。请建议重写这个尾部递归函数的方法。在import json
import codecs
import itertools
import os
import sys
from time import sleep
from datetime import datetime
import dateutil.parser
from openpyxl import Workbook
def load_json_from_directories(root_path, cur_path, asset_code):
for filename in os.listdir(cur_path):
if os.path.isfile(os.path.join(cur_path, filename)):
if os.path.splitext(filename)[1] == '.json':
print('Processing...'+filename)
load_json_line(os.path.join(cur_path, filename), asset_code)
else:
print('Not a json file! Skipping...'+filename)
elif os.path.isdir(os.path.join(cur_path, filename)):
load_json_from_directories(root_path, os.path.join(cur_path, filename), asset_code)
else:
sys.exit("Should never reach here.")