将处理后的数据附加到 csv 文件并保留最后处理行的记录

问题描述 投票:0回答:1

我在 Windows 10 的一个文件夹中有 4000 个 csv 文件,每个文件大约有 500 行,我在其中读取文本列和几个标识列,每个文件都在循环中处理并保存。由于系统限制,有时进程会中断。 因此,我不想在处理后保存整个文件,而是想继续附加带有已处理的单个记录的输出 csv 文件。任何时候,如果进程因假设“python 进程”关闭或“系统重新启动”而中断,脚本应自行重新启动,开始处理最后一个文件+最后一个记录并再次开始追加。 我没有管理员权限。

请建议一些有效的方法。流程代码具有 NLP 清理、大量自定义正则表达式和自定义处理。这是非常繁忙的过程。

示例代码:

clean process(df):
  some code

def read_save_csv():
   logging.debug('start reading files")
   files_path="some path"
   for file in glob.glob(file_path):
       df=pd.read_csv(file)
       logging.debug('ended file read')
       try:
          df_process= clean_process(df)
          logging.debug("start saving file" +filename)
       except exception as e:
          logging.debug("error" + str(e))

read_save()
python nlp shutil python-os
1个回答
0
投票

如果你想在程序关闭并重新启动时保留状态(最后一个文件和记录),那么你必须将状态保存到文件中。如果文件存在,则循环应从最后一个文件继续并记录,否则从头开始。

要在程序退出时保存状态,可以使用以下代码:

import signal
import atexit


def handle_exit(*args):
    # save state (last file and record) to file

atexit.register(handle_exit)
signal.signal(signal.SIGTERM, handle_exit)
signal.signal(signal.SIGINT, handle_exit)

它应该与优雅的退出和杀死一起工作。

© www.soinside.com 2019 - 2024. All rights reserved.