#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:
Спасибо за помощь — открытие новой темы для другой проблемы, которая отличается