原址:http://blog.chedushi.com/archives/7258 最近在用 xlrd 寫一個題庫自動導出的程式,但碰到一個比較 ugly 的問題。 程式要求是將 xls 文件中的數據導出成文本,但 xlrd 在讀取數據時,會將 xls 單元格中所有可能是數字的數據都自動轉換成 py ...
原址:http://blog.chedushi.com/archives/7258
最近在用 xlrd 寫一個題庫自動導出的程式,但碰到一個比較 ugly 的問題。
程式要求是將 xls 文件中的數據導出成文本,但 xlrd 在讀取數據時,會將 xls 單元格中所有可能是數字的數據都自動轉換成 python 的 float。這時候,我們通過 str(cell.value) 會得到 12.0 (假設 cell.value = 12.0)。
我明明需要字元串 12 卻給我 12.0,太 ugly 了。。。。
一個更 ugly 的解決辦法如下:
if ( type(cell.value) == float ):
if ( cell.value == int(cell.value) ):
val = int(cell.value)
python 中 12.0 == int(12.0) 返回 True
利用這個,寫了這麼個折中方案。。。