2017-10-12 4 views
1

J'ai trouvé un bon moyen d'exporter une table générée avec pandashere en PDF, la partie sur la conversion en un fichier png est sans intérêt pour moi.Exportation de la table pandas en format pdf

Le problème est que je reçois le message d'erreur suivant:

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-10-9818a71c26bb> in <module>() 
    13 
    14 with open(filename, 'wb') as f: 
---> 15  f.write(template.format(z.to_latex())) 
    16 
    17 subprocess.call(['pdflatex', filename]) 

TypeError: a bytes-like object is required, not 'str' 

Je ne suis pas vraiment comprendre le code en premier lieu qui le rend très difficile de corriger l'erreur. Mon code ressemble à ceci:

import subprocess 

filename = 'out.tex' 
pdffile = 'out.pdf' 

template = r'''\documentclass[preview]{{standalone}} 
\usepackage{{booktabs}} 
\begin{{document}} 
{} 
\end{{document}} 
''' 

with open(filename, 'wb') as f: 
    f.write(template.format(z.to_latex())) 

subprocess.call(['pdflatex', filename]) 

z est un DataFrame généré avec pandas.

J'espère que quelqu'un pourra vous aider. Merci d'avance, Sito.

Répondre

0

Le problème est que vous ouvrez un fichier pour écrire en mode octets - c'est ce que le caractère "b" signifie dans l'appel à open() - et en passant ensuite les données de chaîne. Changer ceci:

with open(filename, 'wb') as f: 
    f.write(template.format(z.to_latex())) 

à ceci:

with open(filename, 'w') as f: 
    f.write(template.format(z.to_latex()))