Я пытаюсь вставить несколько строк в строку, которую я создал с помощью readlines () в python. Я много часов отлаживал его, но не могу понять, в чем проблема.
У меня есть определенное ранее количество серверов i. data - это строка, которая включает мой текстовый документ, и у меня есть функция get_line, которая ищет в строке ключевое слово Queue1 Position и возвращает строку. В моем примере это строка 82.
...
data = cfg.readlines()
...
#Queue
i = int(gwi["Server"][0]) #Number of Servers
line_idx=get_line(data,'Queue1 Position')
for x in range(1,i+1):
if x==1:
data[line_idx] = ('Queue'+str(x)+' Position { 1.500000 '+str(1.100000-x+1)+' 0.000000 m }\n'+'Queue'+str(x)+
' Points { { 1.500 '+str(0.700-x+1)+' 0.000 m } { 2.500 '+str(0.700-x+1)+' 0.000 m } }\n\n')
print(line_idx) #test
else:
line_idx = line_idx + 1
data[line_idx] = ('Queue'+str(x)+' Position { 1.500000 '+str(1.100000-x+1)+' 0.000000 m }\n'+'Queue'+str(x)+
' Points { { 1.500 '+str(0.700-x+1)+' 0.000 m } { 2.500 '+str(0.700-x+1)+' 0.000 m } }\n\n')
print(line_idx) #test
Мой документ, который я редактирую, вначале выглядит так.
Когда я запускаю свой код, cfg-файл выглядит так. "Server1 NextComponent {EntitySink1}" вырезан.
Но когда я запускаю свой код, результат должен быть таким.
Можно ли вообще решить эту проблему с помощью цикла for? Может есть другое решение.






Решил проблему самостоятельно.
#Queue
i = int(gwi["Server"][0]) #Number of Servers
line_idx=get_line(data,'Queue1 Position')
del data[line_idx+1]
queue_text = ""
for x in range(1,i+1):
if x<i:
queue_text = queue_text+('Queue'+str(x)+' Position { 1.500000 '+str(1.100000-x+1)+' 0.000000 m }\n'+'Queue'+str(x)+
' Points { { 1.500 '+str(0.700-x+1)+' 0.000 m } { 2.500 '+str(0.700-x+1)+' 0.000 m } }\n\n')
else:
queue_text = queue_text+('Queue'+str(x)+' Position { 1.500000 '+str(1.100000-x+1)+' 0.000000 m }\n'+'Queue'+str(x)+
' Points { { 1.500 '+str(0.700-x+1)+' 0.000 m } { 2.500 '+str(0.700-x+1)+' 0.000 m } }\n')
data[line_idx] = queue_text
Следует избегать изображений текста, поскольку они недоступны и недоступны для поиска. Вместо этого редактировать вопрос, вставьте текст и отформатируйте его как код, используя кнопку в редакторе или сделав отступ в четыре пробела.