Python считывает диапазон строк из txt на сервере и записывает их в локальный файл

#python

Вопрос:

У меня есть файл журнала на удаленном сервере, и я хочу записать в файл строки, которые я выбрал для записи.

Дело в том, что печать(linex) ниже в порядке, и я вижу все строки в консоли CMD. Но он записывает только 1-ю строку в файл.

Что я здесь упускаю…?

 def GetEndLastLine ():
    last_line = sum(1 for line in open('//10.10.10.10/d$/log/server.log'))
    print(last_line)
        with open('//10.10.10.10/d$/log/server.log') as f:
        for linex in itertools.islice(f, first_line, last_line):
            break
        x = open(r"LogFile.txt", "w")
                print(linex)
                x.write("LOGS START HERE****nn"  output  "")
                os.system("start notepad  .exe LogFile.txt")
 

Комментарии:

1. Ваш отступ выключен, поэтому трудно что-либо сказать, но вы, кажется break , делаете это из цикла после первой строки.

2. К чему эта ненужная вмятина?

3. Извините. Я новичок в Python. Исправит ли отступ проблему? даже без перерыва он работает не так, как epxected. он продолжает открывать новый файл для записи для каждой напечатанной строки, вместо этого открываются целые строки в одном и том же файле

4. Удалось поместить все это в файл, но теперь результат-одна длинная строка с n, Попробовал функцию splitlines (), но безуспешно. есть какие-нибудь предложения, как привести эту строку в порядок, как в исходном файле?

5. Выходной текст записывается в файл следующим образом : [‘Бла Бла Блан Бла Бла Блан’] — в исходном файле он выглядит нормально строка за строкой. Чтение выполняется следующим образом : строки = text_file.readlines() строки = строки[первая строка:последняя строка]. Есть идеи, как решить эту проблему, чтобы она выглядела как оригинальный файл?

Ответ №1:

Это должно записать все содержимое server.log на ваш локальный LogFile.txt .

 with open('//10.10.10.10/d$/log/server.log') as f:
   lines = f.readlines()
with open("LogFile.txt", "w") as f:
   f.writelines(lines)
 

Комментарии:

1. Спасибо! как мне вставить 2 параметра, которые я получаю в качестве диапазона строк? Предлагаемый сценарий заключается в написании всех строк. мне нужен диапазон линий. У меня уже есть номера строк диапазона

2. Отредактируйте свой вопрос с помощью ввода и желаемого вывода

Ответ №2:

Спасибо за помощь — открытие новой темы для другой проблемы, которая отличается