在python中将项目附加到字典中的列表时出现分段错误11

2024-04-26 20:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码是脚本的一部分,它在脚本的开头运行。在整个脚本或仅此块中运行它将返回分段错误11(无其他详细信息):

files = [f for f in os.listdir(os.getcwd()) if f[-3:] == 'log']
names = []
configurations = {}

for file in files:
    format_file = next(pybel.readfile('log',file))
    name = format_file.write(format='inchi')

    if name not in names:
        names.append(name)
        configurations[name] = [file]
    else:
        configurations[name].append(file)

第一部分没有问题(基于“打印”调试)

  • 文件是目录中的所有“日志”文件,最多可达1500个。它们是软件的输出,大小从200KB到12MB(尽管在这个阶段大小并不重要)
  • 格式_文件是pybel模块中的一个对象,可以转换为“名称”,它是一个字符串,如“1S/C15H20BrClO/c1-3-5-6-10-13(17)15-11-8-7-9-12(16)14(4-2)18-15/h1,5-8,12-15H,4,9-11H2,2H3/b6-5+,8-7-/t12-,13+,14+,15+/m0/s1”。一个目录中的一组文件中最多可以有128个不同的“名称”

然后,在第二部分中是我检测错误的代码。特别是在将文件附加到字典列表时(同样,通过“打印”调试)

  • 创建不同名称的列表
  • 创建列表字典,如{name1:[file1,file3],name2:[file2,file4,file4],…}(目录中的名称和文件数量相同)

当我处理相对较少的文件时,这些文件只提供少量的名称,我没有问题。 但是,随着文件和/或名称数量的增加,这给了我一个“分段错误11”

我正在MacOS Mojave中使用python 3.7.6

脚本按目录运行,不同时处理多个目录

提前谢谢


Tags: 文件代码namein目录脚本名称format