在下面的代码中,我正在计算现在的纪元和当天纪元的开始.
import time
import pytz
from datetime import datetime
tz1 = pytz.timezone('CST6CDT')
utc = pytz.timezone('UTC')
now = pytz.UTC.localize(datetime.utcnow())
now_tz = now.astimezone(tz1)
print now_tz
print now_tz.strftime('%s')
begin_day = now_tz.replace(hour=0, minute=0, second=0)
print begin_day
print begin_day.strftime('%s')
Run Code Online (Sandbox Code Playgroud)
打印声明:
2012-08-28 13:52:21.595718-05:00
1346187141
2012-08-28 00:00:00.595718-05:00
1346137200
Run Code Online (Sandbox Code Playgroud)
使用CDT时区将时期转换为时间戳:1346187141 - 2012年8月28日15:52:21,1346137200 - 2012年8月28日02:00:00
我希望第二个时代开始,但现在是凌晨2点.在转换为纪元时,它看起来仍然使用本地时区PST.
我究竟做错了什么 ?或者这可以用不同的方式完成吗?
谢谢!
我正在尝试访问POP3电子邮件服务器。我将轮询消息并为每个消息下载附件。我可以成功登录并获取消息,但无法弄清楚如何实际获取附件,稍后需要解析。我想我可以保存到tmp dir,直到我处理它。
这是到目前为止我得到的:
pop = poplib.POP3_SSL(server)
pop.user(usr)
pop.pass_(pwd)
f = open(file_dir, 'w')
num_msgs = len(pop.list()[1])
for msg_list in range(num_msgs):
for msg in pop.retr(msg_list+1)[1]:
mail = email.message_from_string(msg)
for part in mail.walk():
f.write(part.get_payload(decode=True))
f.close()
Run Code Online (Sandbox Code Playgroud)
这是我从网上找到的示例中拼凑而成的代码,但没有实际获得附件的可靠示例。我正在写入的文件为空。我在这里想念什么?
这是一个示例csv文件
id, serial_no
2, 500
2, 501
2, 502
3, 600
3, 601
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的输出(带有id列表的serial_no列表):
[2, [500,501,502]]
[3, [600, 601]]
Run Code Online (Sandbox Code Playgroud)
我已经实现了我的解决方案,但代码太多了,我确信有更好的解决方案.还在学习Python,我还不知道所有的技巧.
file = 'test.csv'
data = csv.reader(open(file))
fields = data.next()
for row in data:
each_row = []
each_row.append(row[0])
each_row.append(row[1])
zipped_data.append(each_row)
for rec in zipped_data:
if rec[0] not in ids:
ids.append(rec[0])
for id in ids:
for rec in zipped_data:
if rec[0] == id:
ser_no.append(rec[1])
tmp.append(id)
tmp.append(ser_no)
print tmp
tmp = []
ser_no = []
Run Code Online (Sandbox Code Playgroud)
**为了简化代码,我省略了var初始化
print tmp
Run Code Online (Sandbox Code Playgroud)
给我上面提到的输出.我知道有更好的方法来做这个或pythonic方式来做到这一点.太乱了!任何建议都会很棒!