小编t0x*_*x13的帖子

python - 日期时间与时区到纪元

在下面的代码中,我正在计算现在的纪元和当天纪元的开始.

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.

我究竟做错了什么 ?或者这可以用不同的方式完成吗?

谢谢!

python timezone datetime epoch

8
推荐指数
2
解决办法
2万
查看次数

python poplib获取附件

我正在尝试访问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)

这是我从网上找到的示例中拼凑而成的代码,但没有实际获得附件的可靠示例。我正在写入的文件为空。我在这里想念什么?

poplib python-2.7

6
推荐指数
2
解决办法
5397
查看次数

需要更有效的方法来解析Python中的csv文件

这是一个示例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方式来做到这一点.太乱了!任何建议都会很棒!

python csv

2
推荐指数
2
解决办法
1325
查看次数

标签 统计

python ×2

csv ×1

datetime ×1

epoch ×1

poplib ×1

python-2.7 ×1

timezone ×1