2013-06-28 3 views
0

Я получаю это из сценария, который преобразует CSV в XMLСинтаксическая ошибка в функции печати

ошибка синтаксиса недопустимый синтаксис

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

точка находится под первым «=». Я не знаю, почему это так. Может кто-то указать в правильном направлении.

Благодаря Alonzo

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) 
+3

Какая версия Python вы используете? – Kevin

+0

Я использую python version 3 – user2533054

+0

Эта строка компилируется для меня отлично. Это может быть результатом чего-то еще в коде, поэтому помощь в этом поможет немного больше кода. – Aya

ответ

4

Если вы используете Python 2.x, то вам нужно поставить следующую строку в верхней части кода

from __future__ import print_function 
+0

Спасибо, но я использую версию 3 – user2533054

+0

@ user2533054 Можете ли вы опубликовать больше своего кода? – Stephan

+0

Стивен, может быть, я ошибаюсь, но, насколько мне известно, морковь, указывающая на первый «=», означает, что характер, предшествующий «=», является проблемой. Или я не понимаю фтионную документацию? – user2533054

Смежные вопросы