2011-12-16 50 views
-4
arr = [(line.rstrip('\n').split(';')) for line in open('C:/Config_Changer.csv')] 
import sys 
import fileinput 
for i, line in enumerate(fileinput.input('C:/1.cfg', inplace = 1)): 
    sys.stdout.write(line.replace(arr[0][0], arr[0][1])) 

嘿所有,蟒环阵列

我写上面的行,所以它工作正常,但其仅更换进制[0] [0],所以我要循环它作为像下面,所以首先渔政需要loop.Can任何人都可以帮助我的循环命令。我应该在哪里必须把循环完全?

sys.stdout.write(line.replace(arr[a][0], arr[a][1])) 
+0

取决于。应该成为什么? – 2011-12-16 12:03:38

+0

一个或我只是为了循环 – ahmet 2011-12-16 12:06:24

+0

a = 0虽然(a <100)... – ahmet 2011-12-16 12:07:01

回答

3

所以你想要的是适用所有的都在更换arrline:(不像aix的答案,这个避免了明确的索引)

for i, line in enumerate(fileinput.input('C:/1.cfg', inplace = 1)): 
    for f,t in arr: 
     line = line.replace(f, t) 
    sys.stdout.write(line) 
0

提供我正确地理解你的要求:

for i, line in enumerate(fileinput.input('C:/1.cfg', inplace = 1)): 
    for j in xrange(len(arr)): 
     line = line.replace(arr[j][0], arr[j][1]) 
    sys.stdout.write(line) 

或 - 也许更Pythonically -

for i, line in enumerate(fileinput.input('C:/1.cfg', inplace = 1)): 
    for repl in arr: 
     line = line.replace(repl[0], repl[1]) 
    sys.stdout.write(line)