2013-05-27 1 views
0

У меня есть один файл по адресу "C:\Temp", имя файла arun.txt. Содержание файла как следующийКак написать файл в конкретном матче

test= 
pqr= 
lmn= 

Я хочу, чтобы найти строку с «PQR =» и modfiy это как «PWR = А»

Я не очень специалист в питоне.

Но следующий код, который я написал, но ничего не предпринимал и не возвращал никаких ошибок.

f = open('C:\Temp\arun.txt', 'r+') 
     for line in f.readline(): 
       if line == "pqr=": 
         f.write('pqr=xyz') 

Может кто-нибудь, пожалуйста, предложите мне, если я делаю что-то неправильно здесь.

ответ

1
with open("input.txt") as input, open("output.txt", "w") as output: 
    for line in input: 
     if line.startswith("pqr="): 
      output.write("pqr=xyz\n") 
     else: 
      output.write(line) 
+1

Вы можете комбинировать два с операторами с помощью ',' 'с открытым (« input.txt ») в качестве входных, открытых (« output.txt »,« w ») в качестве вывода ' – jamylak

+0

@jamylak good idead –

1

fileinput.input с аргументом inplace=True имеет свои print заявление перенаправлено на временный файл, который переименовывается в исходный файл, чтобы INPLACE редактирования.

for line in fileinput.input('Temp', inplace=True): 
    line = line.rstrip('\n') 
    if line == 'pqr=': 
     print line + 'xyz' 
    else: 
     print line 

временный файл по умолчанию, исходное имя файла + '.bak'. Это делает процесс программы безопасным, в отличие от использования только out.txt в качестве имени файла, так как вы можете решить запустить эту программу в другом файле, который может перезаписывать out.txt по мере того, как вы пишете на нее. Другим безопасным подходом было бы переименование tempfile.NamedTemporaryFile

Смежные вопросы