манипуляция с питоном - PullRequest
2 голосов
/ 13 апреля 2010

У меня есть каталог / tmp / dir с двумя типами имен файлов

/ TMP / реж / абв-то, что-server.log

/ TMP / реж / хуг-то, что-server.log

..

..

и

/ TMP / реж / что-то-client.log

Мне нужно добавить несколько строк (эти строки являются постоянными) к файлам, оканчивающимся на "client.log"

строка 1

строка 2

строка 3

строка 4

добавить эти четыре строки в файлы, заканчивающиеся на "client.log"

Да, я обнаружил, что open () опция "a" даст желаемый результат. но как выбрать правильный файл, исключить server.log и выбрать client.log?

и для файлов заканчиваются на "server.log"

Мне нужно было добавить после ключевого слова сказать "После этого". В файле «server.log» есть несколько записей «After-this». Мне нужно найти первую запись «After-this» и добавить выше, указанные четыре строки сохраняют оставшийся файл как есть.

Любая помощь будет принята с благодарностью :) Заранее спасибо.

1 Ответ

3 голосов
/ 13 апреля 2010

не проверено

import os,glob,fileinput
root="/tmp"
path=os.path.join(root,"dir")
alines=["line 1\n","line 2\n","line 3\n","line 4\n"]
os.chdir(path)
# for clients
for clientfile in glob.glob("*.client.log"):
    data=open(clientfile).readlines()
    data.append(alines)
    open("temp","w").write(''.join(data))
    os.rename("temp",clientfile)
for svrfile in glob.glob("*.server.log"):
    f=0
    for line in fileinput.FileInput(svrfile,inplace=1):
         ind=line.find("After-this")
         if ind!=-1 and not f:
             line=line[:ind+10] + ''.join(alines) + line[ind+10:]
             f=1
         print line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...