2014-02-04 3 views
1

Я пытаюсь пройти через кучу файлов в каталоге и найти и заменить список строк и записать их в один и тот же файл. Когда я запускаю скрипты, все файлы в каталоге оказываются пустыми! Что я здесь делаю неправильно?Поиск и замена нескольких строк в нескольких файлах в python

os.chdir("Resources/maps_sideScrolling/HD") 

replacements = {'tilewidth=\"16\"':'tilewidth=\"32\"', 'tileheight=\"16\"':'tileheight=\"32\"', '.png':'-hd.png'} 

for files in os.listdir("."): 
    if files.endswith("-hd.tmx"): 
     fo = open(files, "rU") 
     fw = open(files, "w") 

     for line in fo: 
      for src, target in replacements.iteritems(): 
       line = line.replace(src, target) 
      fw.write(line) 

     fo.close(); 
     fw.close(); 

ответ

2

Если вы хотите перезаписать файл, который вы можете использовать ниже код:

os.chdir("Resources/maps_sideScrolling/HD") 
replacements = {'tilewidth=\"16\"':'tilewidth=\"32\"', 'tileheight=\"16\"':'tileheight=\"32\"', '.png':'-hd.png'} 

for files in os.listdir("."): 
    if files.endswith("-hd.tmx"): 
     fo = open(files, "rU+") 
     text = fo.read() 
     for src, target in replacements.iteritems(): 
       text = text.replace(src, target) 
     fo.seek(0) 
     fo.write(text) 
     fo.truncate() 
     fo.close() 
Смежные вопросы