From: Andreas K. <an...@ka...> - 2018-12-03 18:19:31
|
OK. I figured out that it worked if I opened the file in binary mode ('wb'). But that made it more problematic to do what I intended, that is add some html before the generated stuff. Something along the below. This does not work, since it complaints that "TypeError: a bytes-like object is required, not 'str'": fd_html = open(htmlPath, 'w', encoding='utf-8') fd_html.write('\n'.join([ '<!DOCTYPE html>', '<html>', '<head>', ' <meta charset="utf-8">', ' <title>My Title</title>\n', ' <link rel="stylesheet" href="%s">\n' % "../my.css", '</head>\n' ])) markdown.markdownFromFile(input=mdPath, output=fd_html, encoding='utf-8', extensions=['markdown.extensions.tables', 'markdown.extensions.def_list', 'markdown.extensions.footnotes', 'markdown.extensions.fenced_code', 'markdown.extensions.codehilite', 'markdown.extensions.attr_list'] ) fd_html.close() I admit that I am a beginner with python and python-markdown, so I realize I might be doing beginner mistakes. Do you have a proposal for how I should do the above? /Andreas mån 3 dec. 2018 kl 17:46 skrev Andreas Kågedal <an...@ka...>: > Hi, > I am probably doing something fundamentally wrong. I get a 'TypeError: > write() argument must be str, not bytes' message when I use > the markdown.markdownFromFile method when with an output file which I have > already opened for writing: > > fd_html = open(htmlPath, 'w', encoding='utf-8') > > markdown.markdownFromFile(input=mdPath, > output=fd_html, > encoding='utf-8', > > extensions=['markdown.extensions.tables', 'markdown.extensions.def_list', > > 'markdown.extensions.footnotes', 'markdown.extensions.fenced_code', > > 'markdown.extensions.codehilite', 'markdown.extensions.attr_list'] > ) > fd_html.close() > > If I let markdown.markdownFromFile open it instead it works fine: > > markdown.markdownFromFile(input=mdPath, > output=htmlPath , > encoding='utf-8', > > extensions=['markdown.extensions.tables', 'markdown.extensions.def_list', > > 'markdown.extensions.footnotes', 'markdown.extensions.fenced_code', > > 'markdown.extensions.codehilite', 'markdown.extensions.attr_list'] > ) > > The reason I want to open it myself if that i need to insert some more > html before the stuff generated by markdown.markdownFromFile. > > What am I doing wrong? > > /Andreas > |