2015-05-25 37 views
2

考虑下面的代码:在Python中使用BytesIO而不是打开/读取有什么好处吗?

from markdown import markdown 

f = open('myfile.md', 'r') 
html_text = markdown(f.read()) 
f.close() 

有什么速度优势或劣势使用io.BytesIO和markdownFromFile?或者它是洗?

from markdown import markdownFromFile 
from io import BytesIO 

s = BytesIO() 
markdownFromFile(input='myfile.md', output=s) 
html_text = s.getvalue() 
s.close() 

在此先感谢您的任何信息。

+0

您是否以此为基准? –

+0

明天我要去办公室;在家里的笔记本电脑上的Vagrant盒子下运行它似乎不是一个好的沙箱。 – FlipperPA

回答

3

如果你自己对它进行基准测试,那将是最好的,但是从它的外观来看,我没有看到使用BytesIO的任何优势。不是直接读取文件并将其解析为字符串,而是先读取并将其处理成BytesIO对象,然后使用BytesIO.getvalue获取所需的字符串。

前者也比较容易阅读。可以做得更简单:

with open('myfile.md', 'r') as f: 
    html_text = markdown(f.read()) 
+0

谢谢!我明天会为我自己的启迪做基准测试,但你的回答是完全合理的。 – FlipperPA

+0

作为Python-Markdown的开发者,我完全同意这个答案,但有一个例外:小心,你似乎认为你正在使用字节;不过Markdown库全部采用Unicode(无论是内存还是外存)。当然,ASCII输入不会是一个问题,但如果你没有考虑到其他问题,那么其他的东西都会。 – Waylan

+0

感谢您的提示,以及您在优秀图书馆Waylan的所有工作 - 非常感谢。 – FlipperPA

相关问题