【问题标题】:I am writing a program to replace some string with another string in python我正在编写一个程序来用python中的另一个字符串替换一些字符串
【发布时间】:2019-10-01 03:21:16
【问题描述】:

输入字符串是这样的

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

输出

$sim,abad_x_y,rat,2,3,x,y
123,456,1345
323,455,2433
$sim,abad_z_c,rat,2,3,z,c
123,4456,1345
323,4554,2445

应该从 $sim 行的第二个标记 x,y 取并替换 a,b 在末尾​​em>

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()

【问题讨论】:

  • 问题是什么?
  • 其实我把上面的文本文件中的输入替换成下面显示的输出
  • 什么不起作用(编辑问题以描述发生了什么以及应该发生什么)?请修正您的代码格式。
  • 我还看到 $sim,abad_z_c,rat,2,3,c,d 需要替换为 $sim,abad_z_c,rat,2,3,z,c 。这是准确还是错字?
  • 是的,这是准确的。这就是我想要的

标签: python python-3.x string replace


【解决方案1】:
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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 2021-06-15
    • 2016-12-11
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 2019-05-14
    相关资源
    最近更新 更多