我被一种奇怪的情况所困扰,我正在创建输入文件的纪元时间戳以检查重复项。在我运行代码之后,我得到了重复的错误,尽管实际上并没有重复。
INPUT 1(带栅栏分隔符的CSV文件):
1:55|The Chris Ramsey Show|||3/26/2017
2:25|South Park|The Biggest Douche in the Universe|615|3/26/2017
2:55|South Park|My Future Self 'n' Me|616|3/26/2017
在INPUT 1中找到的重复项(来自我的代码):
(i.e., programs with the same start time and date):
(1490489700, '01:55', 'The Chris Ramsey Show', '', '03/26/2017')
(1490489700, '02:55', 'South Park', "My Future Self 'n' Me", '03/26/2017')
INPUT 2(带栅栏分隔符的CSV文件):
3/26/2017|2:55|The Chris Ramsey Show|30|||103|Episode 3
3/26/2017|3:25|South Park|30|||615|The Biggest Douche in the Universe
3/26/2017|3:55|South Park|20|||616|My Future Self n' Me
在INPUT 2中找到重复项(来自我的代码):
(i.e., programs with the same start time and date):
(1490493300, '02:55', 'The Chris Ramsey Show', 'Episode 3', '03/26/2017')
(1490493300, '03:55', 'South Park', "My Future Self n' Me", '03/26/2017')
经过调试,我发现导致此问题的3个不同时间段。
03/26/2017 01:55
03/26/2017 02:55
03/26/2017 03:55
我尝试直接在Python中复制此问题,因此创建了以下代码:
import datetime
t1 = datetime.datetime(2017, 3, 26, 1, 55)
t2 = datetime.datetime(2017, 3, 26, 2, 55)
t3 = datetime.datetime(2017, 3, 26, 3, 55)
print(t1, t1.timestamp())
print(t2, t2.timestamp())
print(t3, t3.timestamp())
更令人困惑的是,Sublime Text 2 Python IDE和IDLE提供了2个不同的重复项。
Sublime Text 2 IDE的输出:
2017-03-26 01:55:00 1490489700.0
2017-03-26 02:55:00 1490489700.0
2017-03-26 03:55:00 1490493300.0
[Finished in 0.1s]
来自IDLE的输出:
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
================== RESTART: C:\Users\<>\Desktop\test.py ==================
2017-03-26 01:55:00 1490489700.0
2017-03-26 02:55:00 1490493300.0
2017-03-26 03:55:00 1490493300.0
>>>
当然,我可以尝试使用不同的代码来获取纪元时间,但我想知道为什么会出现这个问题。
答案 0 :(得分:0)
当我按原样运行代码时,我在3.5.3和3.6.1中都获得了3个不同的时间戳。
2017-03-26 01:55:00 1490507700.0
2017-03-26 02:55:00 1490511300.0
2017-03-26 03:55:00 1490514900.0
当我将日期更改为3-12,即美国更改时间的“春季前进”日期时,我得到的重复数分别为3.5和3.6。
# 3.5
2017-03-12 01:55:00 1489301700.0
2017-03-12 02:55:00 1489301700.0
2017-03-12 03:55:00 1489305300.0
# 3.6
2017-03-12 01:55:00 1489301700.0
2017-03-12 02:55:00 1489305300.0
2017-03-12 03:55:00 1489305300.0
我的结论是:a)下个星期天是你所在国家的“春季前进”日期,b)Sublime Text运行3.5。消除模糊(重复)次数的方法在3.6中有所改变。请参阅doctime datetime.timestamp。