打印功能中的语法错误

时间:2013-06-28 19:11:10

标签: python xml csv syntax

我是从一个将csv转换为xml

的脚本中得到的

语法错误语法无效

print(text, file=self.file, end=self.args.linebreak)

这一点在第一个“=”之下。我不确定为什么会这样。有人能指出正确的方向。

由于 阿隆佐

class Writer:
def __init__(self, ofile, args):
    self.file = ofile
    self.args = args
    self.newline_subst = field_subst_factory(args.newline_elem)
    if args.header:
        self.fieldname = self.__fieldname_header
    elif args.flat_fields:
        self.fieldname = self.__fieldname_flat
    else:
        self.fieldname = self.__fieldname_indexed
def write_file(self, data):
    if self.args.declaration:
        declaration = ('<?xml version="1.0" encoding="{0}"?>'.
                       format(args.oencoding))
        self.write(declaration)
    self.write("<{0}>".format(self.args.root_elem))
    for record in data:
        self.write_record(record)
    self.write("<\{0}>".format(self.args.root_elem))
def write_record(self, record):
    self.write("{0}<{1}>".
               format(self.args.indent, self.args.record_elem))
    for index, field in enumerate(record):
        self.write_field(field, index)
    self.write("{0}<\{1}>".
               format(self.args.indent, self.args.record_elem))
def write_field(self, field, index):
    self.write("{0}{0}<{1}>{2}</{1}>".
               format(self.args.indent, self.fieldname(index),
                      self.newline_subst(field)))
def write(self, text):
    **print(text, file=self.file, end=self.args.linebreak)** This the line that's causing issues
def __fieldname_header(self, index):
    return self.args.header[index]
def __fieldname_flat(self, index):
    return self.args.field_elem
def __fieldname_indexed(self, index):
    return self.args.field_elem + str(index)

1 个答案:

答案 0 :(得分:4)

如果您使用的是python 2.x,则需要将以下行放在代码顶部

from __future__ import print_function