utf8 open escape bytes python xml unicode encoding python-unicode

escape - python open encoding



UnicodeEncodeError: el códec ''ascii'' no puede codificar el carácter u ''/ xe9'' en la posición 7: ordinal no está dentro del rango(128) (1)

Tengo este código:

printinfo = title + "/t" + old_vendor_id + "/t" + apple_id + ''/n'' # Write file f.write (printinfo + ''/n'')

Pero me sale este error al ejecutarlo:

f.write(printinfo + ''/n'') UnicodeEncodeError: ''ascii'' codec can''t encode character u''/xe9'' in position 7: ordinal not in range(128)

Es tener toruble escribiendo esto:

Identité secrète (Abduction) [VF]

Cualquier idea, por favor, no estoy seguro de cómo solucionarlo.

Aclamaciones.

ACTUALIZACIÓN: Esta es la mayor parte de mi código, para que pueda ver lo que estoy haciendo:

def runLookupEdit(self, event): newpath1 = pathindir + "/" errorFileOut = newpath1 + "REPORT.csv" f = open(errorFileOut, ''w'') global old_vendor_id for old_vendor_id in vendorIdsIn.splitlines(): writeErrorFile = 0 from lxml import etree parser = etree.XMLParser(remove_blank_text=True) # makes pretty print work path1 = os.path.join(pathindir, old_vendor_id) path2 = path1 + ".itmsp" path3 = os.path.join(path2, ''metadata.xml'') # Open and parse the xml file cantFindError = 0 try: with open(path3): pass except IOError: cantFindError = 1 errorMessage = old_vendor_id self.Error(errorMessage) break tree = etree.parse(path3, parser) root = tree.getroot() for element in tree.xpath(''//video/title''): title = element.text while ''/n'' in title: title= title.replace(''/n'', '' '') while ''/t'' in title: title = title.replace(''/t'', '' '') while '' '' in title: title = title.replace('' '', '' '') title = title.strip() element.text = title print title ######################################### ######## REMOVE UNWANTED TAGS ######## ######################################### # Remove the comment tags comments = tree.xpath(''//comment()'') q = 1 for c in comments: p = c.getparent() if q == 3: apple_id = c.text p.remove(c) q = q+1 apple_id = apple_id.split('':'',1)[1] apple_id = apple_id.strip() printinfo = title + "/t" + old_vendor_id + "/t" + apple_id # Write file # f.write (printinfo + ''/n'') f.write(printinfo.encode(''utf8'') + ''/n'') f.close()


Debe codificar Unicode explícitamente antes de escribir en un archivo, de lo contrario, Python lo hace por usted con el códec ASCII predeterminado.

Elija una codificación y quédese con ella:

f.write(printinfo.encode(''utf8'') + ''/n'')

o use io.open() para crear un objeto de archivo que codificará para usted mientras escribe en el archivo:

import io f = io.open(filename, ''w'', encoding=''utf8'')

Es posible que desee leer:

Antes de continuar.