2016-08-13 18 views
-1

特定字符我有数据为文本文件:更换在python

a Next-hop=path 
a 10.230.2.91 
a Next-hop=path 
a 10.229.5.239 
a 10.229.6.239 

我希望它看起来像:

12  Next-hop=path 
12  10.230.2.91 
55  Next-hop=path 
55  10.229.5.239 
55  10.229.6.239 

这意味着,每次下一跳=路径在那里,文本文件中的第一列应该从另一个文本文件“数字”中读取数据,如12,55,其行数为12,55,并替换原始文本文件中的“a”。任何帮助使用python做到这一点?谢谢!

+0

请迄今发布您的代码。因为描述不清楚,所以也张贴第二输入文件的样本,例如,它是一个单独的逗号分隔线,还是第二个文件中有多行? – mhawke

+0

@mhawke第二个文件有多行,我想从第二个txt文件中选择一行并将其放入第一个文件中,直到遇到另一个“next-hop = path”。 – alisha

+0

所以这是每行一个号码?发表一个例子和你的代码。 – mhawke

回答

0

您需要先读aNext-hop=path 使用

for cur_line in lines: 
    contents = cur_line.split() 

文件

f = open('filename.extension') 
lines = f.readlines() 

,那么你可以通过线路进行迭代,并且比较在第二列agains字符串你的标记。引入一个替换字符串变量并在遇到Next-hop=path时进行更改。 否则只是旧值

if contents[1] == "Next-hop=path": 
    replacementString = read_replacement_string() 

contents[0] = replacementString 

替换再写入新的内容文件

+0

你的代码看起来不错,但我必须从文件中读取替换字符串,我怎么能为此使用两个for循环,请进一步指导。谢谢! – alisha

+0

您可以像第一个文件一样读取第二个文件,并预处理内容以获取替换字符串列表。那么你可以索引列表 'replacementStringList [rep_index]',而不是使用上面的代码来得到一个新的替换字符串,如 'if contents [1] ==“Next-hop = path”: rep_index + = 1' 然后替换像这样的内容 'contents [0] = replacementStringList [rep_index]' – meetaig

+0

非常感谢您的帮助! – alisha