Я пишу программу для замены какой-либо строки другой строкой в ​​Python - PullRequest
0 голосов
/ 01 октября 2019

Входная строка выглядит примерно так

$ sim, abad_x_y, rat, 2,3, a, b
123,456,1345
323,455,2433
$ sim, abad_z_c, крыса, 2,3, c, d
123,4456,1345
323,4554,2445

Выход

$ sim, abad_x_y, крыса, 2,3, x, y
123,456,1345
323,455,2433
$ sim, abad_z_c, крыса, 2,3, z, c
123,4456,1345
323,4554,2445

Со второго токена $ sim строки x, y следуетбыть взятым и замененным a, b в конце

import os  
import sys  
import re  
fin=open('old_file.txt','r')  
fout=open('new_file.txt','a')  
line_list = fin.readlines() 
for w in line_list.rstrip('\n\r'):  
    if w.startswith('$sim'):  
        word_set=w.split(',')  
        split_zone=word_set[1].split('_')  
        fout=fout.write(w.replace(word_set[-1],split_zone[-1]))  
        fout=fout.write(w.replace(word_set[-2],split_zone[-2]))  
    fout=fout.write(w)  
fin.close()  
fout.close()

1 Ответ

0 голосов
/ 01 октября 2019
import os
import sys
import re
fin=open('old_file.perf','r')
fout=open('new_file.txt','w')
line_list = fin.readlines()
for line in line_list:
    if line.startswith('$sim'):
        word_set=line.split(',')
        split_zone=word_set[1].split('_')
        new_line=line.replace(word_set[-1],split_zone[-1])
        new_line2=new_line.replace(word_set[-2],split_zone[-2])
        fout.write(new_line2)
        fout.write('\n')
    else:
        fout.write(line)
fin.close()
fout.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...