擅长:python、mysql、java
<p><code>xlrd</code>将所有数字作为浮点数,布尔值作为整数。如何将它们打印出来纯粹是一个python问题。在</p>
<p>你已经知道哪些单元格包含布尔值。(如果不这样做,请检查单元格的<code>ctype</code>,如Massimo Fuccillo的<a href="https://stackoverflow.com/a/22244650/699305">answer</a>中所示,有关详细信息,请参阅@JohnY的评论。)只需打印<code>True</code>和{<cd4>},只需打印<code>bool(var)</code>,而不是{<cd6>}:</p>
<pre><code>>>> var = 1
>>> print bool(var)
True
</code></pre>
<p>当写入一个文件时,它将作为字符串<code>'True'</code>(resp。<code>'False'</code>),如预期。在</p>
<p>由于Excel不区分整数和浮点,我们假设<code>integer</code>表示小数部分为零的任何数字。当python打印一个float时,它添加<code>.0</code>来保存它是一个float的信息。在</p>
<p>如果用“%g”格式化输出的数字,则最简单的解决方案是取消此选项:</p>
^{pr2}$
<p>但是,<code>"%g"</code>默认情况下会将实数舍入为六个有效数字(尽管可以指定不同的精度)。在</p>
<pre><code>>>> "%g" % 2500.03
'2500.03'
>>> "%g" % 2500.003
'2500'
</code></pre>
<p>因此,如果您自己检测积分值,并相应地打印出来,则更安全:</p>
<pre><code>if int(var) == var:
print int(var)
else:
print var
</code></pre>
<p>我建议这样做。在</p>