Ошибка «символ новой строки в поле без кавычек» - ошибка при попытке записи в csv-файл в Python - PullRequest
0 голосов
/ 01 марта 2019

Я создал скрипт Python, в котором я хочу прочитать файл, предварительно обработать его и записать как файл CSV.

Однако, когда я пытаюсь создать новую строку для каждого символа ")", у меня возникает проблема, которая говорит: "Символ новой строки, видимый в поле без кавычек - вам нужно открыть файл в универсальномрежим новой строки? "Я видел, как некоторые предлагали использовать оба параметра: «rU» и «rb» в качестве параметров режима, и я попробовал это без удачи.Любые другие предложения?

Вот как выглядит мой скрипт:

with open('testlogs', 'r', newline='') as log_file, open('output.csv', 'w') as csv_file:
contents = log_file.read()  
dataPoints = re.findall('\[(.*?)\]', contents)
parsedLog = [item.replace(' ', '').replace('(', '').replace(')', '\n') for item in dataPoints]

reader = csv.reader(parsedLog)
writer = csv.writer(csv_file)
writer.writerows(reader)

1 Ответ

0 голосов
/ 01 марта 2019

Я предлагаю использовать re.sub (python) для манипулирования регулярными выражениями

import fileinput
import re

logfile="error.log"
outfile="clean.csv"

with open("error.log") as f:
   newText = f.read()
   newText = re.sub(r" ", "", newText)
   newText = re.sub(r"(", "", newText)
   newText = re.sub(r")", "\n", newText)    

   with open("clean.csv", "w") as f:
      f.write(newText)

, если вы хотите добавить какой-либо параметр в файл .csv первой строки, просто добавьте его в конце исходного кода выше:

for line in fileinput.input(files=['clean.csv'], inplace=True):
    if fileinput.isfirstline():
        print 'parameter1,parameter2,parameter3, .... '
    print line,

надеюсь, что этот ответ поможет вам ^ _ ^ ура

...