Python csv.reader是否自动转换ISO日期?

Python csv.reader是否自动转换ISO日期?,python,date,csv,iso,Python,Date,Csv,Iso,我使用Python的csv.reader将文件中的一组日期和坐标带入列表。下面是.csv中的一个示例行和代码: 2012-05-062012-05-13165,35.20068,-89.79318 问题在于,由于某种原因,当将日期放入列表时,字符串正从ISO格式更改为日历格式: ['5/6/2012'、'5/13/2012'、'35.20068'、'-89.79318'] 对这里发生的事情有什么想法吗?是csv.reader改变了字符串吗?我可以做些什么来阻止它或将其更改回ISO格式?csv。r

我使用Python的csv.reader将文件中的一组日期和坐标带入列表。下面是.csv中的一个示例行和代码:

2012-05-062012-05-13165,35.20068,-89.79318

问题在于,由于某种原因,当将日期放入列表时,字符串正从ISO格式更改为日历格式:

['5/6/2012'、'5/13/2012'、'35.20068'、'-89.79318']


对这里发生的事情有什么想法吗?是csv.reader改变了字符串吗?我可以做些什么来阻止它或将其更改回ISO格式?

csv。reader
不会更改任何内容。您认为正在打开的文件可能与实际打开的文件不同

要证明这一点,请执行以下操作:

with open('innovation.csv', 'r') as f:
    print f.read()

最可能的原因是您正在查看的
'inovation.csv'
文件与您的程序正在打开的
'inovation.csv'
文件位于不同的目录中。

刚刚在Python 2.7.3中运行了一个快速测试(如果您得到不同的结果,请说明您使用的版本,因为这可能是一个“功能”)或不同版本中的错误)

输出以确认csv未对日期执行任何操作:

['2012-05-06', '2012-05-13', '165', '35.20068', '-89.79318']
['2012-05-06', '2012-05-13', '165', '35.20068', '-89.79318']

csv基本上只是做一个string.split(“,”)(至少在这个简单的输入上)它不做任何其他的数据处理。我还注意到,您的输出丢失了我测试中的“165”数据,ParseMe是否在执行内部操作,而不仅仅是追加行?

csv。reader
没有更改任何内容。您认为正在打开的文件可能与实际打开的文件不同。完全没有错误。史蒂文很得体。我忘记重新运行innovation.csv文件,但忘记更改原始数据列表中的日期格式。这也解释了丢失的“165”。非常感谢您的快速回复!谢谢你,约翰。这要简单得多:我在另一个目录中使用了一个旧文件。不过,谢谢你的帮助!
data = "2012-05-06,2012-05-13,165,35.20068,-89.79318\n2012-05-06,2012-05-13,165,35.20068,-89.79318\n"
import csv
import StringIO
infile = StringIO.StringIO(data)
reader = csv.reader(infile)
for row in reader:
    print row
['2012-05-06', '2012-05-13', '165', '35.20068', '-89.79318']
['2012-05-06', '2012-05-13', '165', '35.20068', '-89.79318']