Ниже приведены фрагменты кода, который я написал для изменения текстового файла в python.текстовый файл должен быть открыт с помощью программного обеспечения для анализа cbecc-res.split_cbecc
и join_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 имеет файл журнала, который я могу прочитать, если при открытии файла или выполнении анализа возникает какая-либо ошибка,но никаких ошибок не регистрируется, несмотря на явное сохранение какой-либо проблемы.
Я понятия не имею, где искать потенциальные причины этих проблем.Может быть, вы можете помочь.