只有在某些情况下,Python xlrd在读取日期时无法创建CSV
我使用xlrd创建了一个XLS2CSV函数,但我不知道.xls输入文件中的日期可以使用哪一列 下面的代码几乎可以正常工作,但在某些情况下(如果使用相同的输入XLS文件多次运行,并不总是相同的行“失败”),例如,不是2015年7月2日,而是将整数保存为47853(我猜excel保存日期的方式是数字) 我感到惊讶的是,几乎在所有情况下,它都可以使用DD/MM/YYYY格式创建带有日期的CSV,但在某些情况下,它们只是作为整数 奇怪的是,有时这条线 印刷品(一) 使用相同的精确值显示同一列的日期,有时显示数字(至少我在Excel视图中看到了相同的日期) 复制3行的“打印(i)”样本数据只有在某些情况下,Python xlrd在读取日期时无法创建CSV,python,excel,date,csv,Python,Excel,Date,Csv,我使用xlrd创建了一个XLS2CSV函数,但我不知道.xls输入文件中的日期可以使用哪一列 下面的代码几乎可以正常工作,但在某些情况下(如果使用相同的输入XLS文件多次运行,并不总是相同的行“失败”),例如,不是2015年7月2日,而是将整数保存为47853(我猜excel保存日期的方式是数字) 我感到惊讶的是,几乎在所有情况下,它都可以使用DD/MM/YYYY格式创建带有日期的CSV,但在某些情况下,它们只是作为整数 奇怪的是,有时这条线 印刷品(一) 使用相同的精确值显示同一列的日期,有时
274152097
cuello valeria
274152097@hotmail.com
CUOTAENERO16
SOCIALCARD0116
390.0
CBU
321000115000260990
15/01/2016
273292535
del soto juana
273292535@hotmail.com
CUOTAENERO16
SOCIALCARD0116
350.0
CBU
020092581100001132
06/01/2016
273220457
chavez yudith
273220457@hotmail.com
CUOTAENERO16
SOCIALCARD0116
350.0
CBU
020091351100001132
42384.0
这样一个不规则且不可复制的问题很可能不是由于Python的行为,而是由于xls文件的实际编码,Excel可能会隐藏并隐式地隐藏该文件。一些日期被编码为整数,而其他日期则使用DD/MM/YYYY格式。作为典型的M$应用程序,Excel喜欢获取您的数据,猜测数据的含义,并向您显示这些猜测。有时,它甚至会在保存文件时保存猜测,在您不知情的情况下修改xls。这可以解释你观察到的不规则行为。尝试将xls导出为csv,在基本文本编辑器中打开csv,并对此处打印的记录进行grep。考虑到42384.0等于2016年1月15日,并且您已经显示了2016年1月15日的DMY,那么我认为您在源数据中存在DMY与MDY的问题。顺便说一句,47853是2031年1月5日,而不是2015年7月2日;42187是2015年7月2日。另外,您是否考虑过某些日期可能实际上是日期时间?如果时间是日期的一部分,则
int(i)!=我
@Jeeped我检查了数据和源数据总是采用相同的DMY格式,并且问题出现在int(i)
之前,就在从sh.row\u值(r)
读取i
时,您需要对类型更加严格。调试时,不要只打印x
,而是打印repr(x)
和/或type(x)
。如果我不得不猜测的话,我会说您的Excel文件有时包含字符串,如'15/01/2016'
,其他时间包含日期,如42384.0
。
274152097
cuello valeria
274152097@hotmail.com
CUOTAENERO16
SOCIALCARD0116
390.0
CBU
321000115000260990
15/01/2016
273292535
del soto juana
273292535@hotmail.com
CUOTAENERO16
SOCIALCARD0116
350.0
CBU
020092581100001132
06/01/2016
273220457
chavez yudith
273220457@hotmail.com
CUOTAENERO16
SOCIALCARD0116
350.0
CBU
020091351100001132
42384.0