在py2和py3中处理Python文件读取选项rU的优雅方式

时间:2015-05-18 09:00:19

标签: python python-2.7 python-3.x

使用读取模式读取文件的最佳方法是什么?rU' (在Python 2和3中以优雅的方式阅读具有通用换行支持的文件)? Py3.4最近弃用了它,引起了DeprecationWarings:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:output method="text"/>
    <xsl:template match="/VALUES">
        <xsl:variable name="result">
            <xsl:for-each select="LENGTH|WIDTH|HEIGHT">
                <xsl:sort select="." order="ascending" data-type="number"/>
                <v>
                    <xsl:value-of select="."/>
                </v>
            </xsl:for-each>
        </xsl:variable>

        <xsl:value-of select="2 * $result/v[1] * $result/v[2]"/>
    </xsl:template>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:2)

我没有办法用巧妙的参数组合来调用open()以使其适用于两者。我将它包装在一个帮助方法中,它区分了Python 2和3:

import sys
if sys.version_info[0] == 2:
   def open_text(filename):
       return open(filename, 'rU')
else:
   def open_text(filename):
       return open(filename, 'r', newline=None)