Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 防止csvkit修改日期/时间?_Python_Excel_Csv_Export To Csv_Xlrd - Fatal编程技术网

Python 防止csvkit修改日期/时间?

Python 防止csvkit修改日期/时间?,python,excel,csv,export-to-csv,xlrd,Python,Excel,Csv,Export To Csv,Xlrd,我只是尝试将Excel转换为csv。但是,它没有考虑日期和时间的格式,也没有从Excel自己的另存为csv生成不同的结果。例如,这是电子表格的一行: 这就是Excel的“另存为”产生的结果: 22/04/1959,Bar,F,01:32.00,01:23.00,00:59.00,00:47.23 日期没有特殊格式,时间格式为[mm].ss.00。但是,这是csv的版本: 1959-04-22,Bar,F,0.00106481481481,0.000960648148148,0.0006828

我只是尝试将Excel转换为csv。但是,它没有考虑日期和时间的格式,也没有从Excel自己的另存为csv生成不同的结果。例如,这是电子表格的一行:

这就是Excel的“另存为”产生的结果:

22/04/1959,Bar,F,01:32.00,01:23.00,00:59.00,00:47.23
日期没有特殊格式,时间格式为
[mm].ss.00
。但是,这是csv的版本:

1959-04-22,Bar,F,0.00106481481481,0.000960648148148,0.00068287037037,0.000546643518519
这当然毫无用处。有什么想法吗?这似乎没有任何命令行选项-
无推断
没有帮助。谢谢

编辑

这两个
csvkit
ans
xlrd
似乎都考虑了格式,但它们并不聪明。在这两种情况下,日期21/02/1066都作为文本字符串“21/02/1066”传递,但日期“22/04/1959”通过
xlrd
1959-04-22
通过
csvkit
转换为“21662.0”。它们都只是放弃小的运行时间,通过float表示。如果您知道单元格应该包含经过的时间,这是可以的,因为您只需乘以
24*60*60
即可得到正确的答案

我不认为
xlrd
在这里会有多大帮助,因为它的日期元组函数只处理秒,而不是厘米

编辑2

发现了一些有趣的东西。我从一个包含时间的基本电子表格开始。其中一个我将时间格式化为
[m:]ss.00
,另一个我将时间格式化为
[mm:]ss.00
。然后我将它们分别保存为
.xls
.xlsx
,总共给出了4张电子表格。Excel可以将所有4个字符转换为csv,csv中的所有时间文本都显示为最初编写的文本(例如,对于0m 21.0s,即
0:21.0


in2cv
根本无法处理这两个
.xls
版本;此时间显示为
00:00:21
。它也无法处理
.xlsx
版本的
[m:]ss.00
-转换会导致“索引超出范围”错误。CSV中
in2csv
可以处理的4个电子表格中只有
.xlsx
一个,格式为
[mm:]ss.00

可选的
-I
参数应该可以避免这个问题。在测试示例数据时,我得到了Excel的“另存为”生成的数据

命令:
in2csc-sample.csv-I>sample-output-I.csv

输出:
1959年4月22日,巴尔,F,01:32.00,01:23.00,00:59.00,00:47.23

-I,--no推断
在解析CSV输入时禁用类型推断


也在关注同样的问题。根据这一点,现在应该可以修复了,但我仍然无法在通过pip提供的版本中使用--format date参数。我想你可以通过直接从git安装来解决这个问题。有趣的是,我会在接下来的几天里尝试一下。