用cbecc-res无法打开用python编辑的文本文件

时间:2018-10-05 20:14:54

标签: python text-files

下面是我编写的用于在python中修改文本文件的代码段。文本文件将使用分析软件cbecc-res打开。 split_cbeccjoin_cbecc分别读取和写入一个文本文件。 run_changes接收文本和更改字典,并将更改应用于文本。

'''
    split_cbecc, join_cbecc

    input:
        path - location of a text file to be modified
    output:
        filedata - text file saved as a variable
'''

def split_cbecc(path):
    with open(path, 'r', encoding='utf-8') as file:
        filedata = file.read()

    filedata = filedata.split('..')
    for i in range(len(filedata)):
        filedata[i] = filedata[i].strip()

    return filedata

def join_cbecc(path, filedata):
    with open(path, 'w+', encoding='utf-8') as file:
        file.write("\n   ..\n\n".join(filedata))

'''
    run_changes

    input:
      filedata - a text file saved in a variable
      changed_objects - a dictionary of changes to make
    output:
      filedata

'''

def run_changes(filedata, changed_objects):
    for i in range(len(filedata)):
        t_data = filedata[i].split('\n')
        for j in range(len(changed_objects)):
            if changed_objects[j].name in t_data[0]:
                for k in range(len(t_data)):
                    for key in iter(changed_objects[j].attrib()):
                        if key in t_data[k]:
                            t_data[k] = "   "+changed_objects[j].attrib()[key]
        filedata[i] = "\n".join(t_data)

    return filedata

运行代码后,文件将按预期进行修改,但是cbecc-res被挂起并试图打开它(原始文件的备份打开得很好)。任务管理器中有一个cbecc-res进程,但已在后台进程中列出。什么都没出现。

将修改后的文件与原始备份进行比较,除了我所做的更改外没有其他区别。

如果我使用vim打开程序输出然后保存,则cbecc-res可以很好地打开它。再次,文件的文本保持不变。在文件属性对话框中,修改后的文件和备份文件的文件权限看起来相同。

CBECC-res有一个日志文件,如果打开文件或运行分析时发生任何错误,我都可以读取,但是尽管明显存在某些问题,也不会记录任何错误。

我不知道在哪里寻找这些麻烦的潜在原因。也许你可以帮忙。

0 个答案:

没有答案