Как я могу записать текстовый файл в файл syslog.1.gz? - PullRequest
0 голосов
/ 06 августа 2020
import os,gzip, shutil

string = "Jul 28 14:09"
with gzip.open('/var/log/syslog.1.gz', 'rb') as f_in:
    with open('/home/usr/tmp.txt', 'wb') as f_out:
        for line in f_in:
             if string not in str(line):
                    f_out.write(line)
f_in.close()
f_out.close()
with gzip.open('/var/log/syslog.1.gz', 'wb') as f:
    content = open('/home/usr/tmp.txt', 'rb').read()
    binary = content.encode()
    for line in binary:
        f.write(line)

Я пробовал это. Поэтому я записал весь syslog.1.gz в текстовый файл без строк, в которых программа находит строку. Затем я хочу перезаписать syslog.1.gz. Потому что я хочу отредактировать эти журналы и удалить некоторые c журналы. Но теперь я получаю следующие ошибки:

Traceback (most recent call last):
  File "/home/usr/PycharmProjects/clear/test.py", line 13, in <module>
    with gzip.open('/var/log/syslog.1.gz', 'wb') as f:
  File "/usr/lib/python3.6/gzip.py", line 53, in open
    binary_file = GzipFile(filename, gz_mode, compresslevel)
  File "/usr/lib/python3.6/gzip.py", line 163, in __init__
    fileobj = self.myfileobj = builtins.open(filename, mode or 'rb')
PermissionError: [Errno 13] Permission denied: '/var/log/syslog.1.gz'

Не могли бы вы мне помочь?

...