цикл петли - PullRequest
       3

цикл петли

0 голосов
/ 16 декабря 2011
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]))

Привет всем,

Я написал приведенные выше строки, чтобы они работали нормально, но они заменяют только ary [0] [0], поэтому я хочу зациклить его, как показано ниже, так что первое измерение необходимо для зацикливания. Может кто-нибудь помочь мне с командами цикла . Где я должен поставить петлю точно ???

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

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

так что вы хотите применить все замены, которые есть в arr к line: (в отличие от ответа 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 голосов
/ 16 декабря 2011

При условии, что я правильно понимаю ваши требования:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...