'new-line character seen in unquoted field'-尝试写入 Python 中的 csv 文件时出错

'new-line character seen in unquoted field'-error when trying to write to a csv-file in Python

我创建了一个 Python 脚本,我想在其中读取文件、对其进行预处理并将其写入 CSV 文件。

但是,当我尝试在每个“)”字符上创建一个新行时,我遇到一个问题:"new-line character seen in unquoted field - do you need to open the file in universal-newline mode?" 我看到有人建议尝试同时使用 '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)

我建议使用 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,

希望这个回答对你有帮助^_^干杯