2013-06-28 52 views
0

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

的頂部? – Kevin

+0

我正在使用python版本3 – user2533054

+0

該行適合我編譯。這可能是代碼中更深層次的結果,因此發佈更多代碼會有所幫助。 – Aya

回答

4

如果您正在使用Python 2.x的,那麼你需要把下面一行在你的代碼

from __future__ import print_function 
您正在使用哪個版本的Python
+0

謝謝,但我使用的版本3 – user2533054

+0

@ user2533054你可以發佈更多的代碼嗎? – Stephan

+0

斯蒂芬,也許我錯了,但根據我的理解,指向第一個「=」的胡蘿蔔意味着「=」之前的字符是問題。或者我誤解了phtyon文檔? – user2533054