AttributeError:'list'对象没有属性'astimezone'

时间:2016-08-15 06:01:51

标签: python python-2.7

我的python脚本:

import ftplib
import hashlib
import httplib
import pytz
from datetime import datetime
import urllib
from pytz import timezone
import os.path, time
import glob

def ftphttp():
 files = glob.glob('Desktop/images/*.png')
 ts = map(os.path.getmtime, files)
 dts = map(datetime.fromtimestamp, ts)
 print ts

 timeZone= timezone('Asia/Singapore')
 #converting the timestamp in ISOdatetime format
 localtime = dts.astimezone(timeZone).isoformat()

我试图获取多个文件的时间戳。我能打印出我文件夹中的所有文件

 [1467910949.379998, 1466578005.0, 1466528946.0]

但它也提示我关于时区的这个错误。有人有任何想法吗?

Traceback (most recent call last):
 File "<pyshell#76>", line 1, in <module>
 ftphttp()
File "/home/kevin403/Testtimeloop.py", line 22, in ftphttp
 localtime = dts.astimezone(timeZone).isoformat()
AttributeError: 'list' object has no attribute 'astimezone'

2 个答案:

答案 0 :(得分:1)

您正在尝试在对象列表上调用方法,而不是在列表中调用对象。尝试在第一个对象上调用方法:

func isNumber(s: String) -> Bool {
    return Float(s) != nil
}

// Your criteria
isNumber(".")     // false
isNumber("2.2.2") // false
isNumber("-.")    // false
isNumber("+.")    // false
isNumber("")      // false

// Validity check
isNumber("2.2") // true
isNumber("2")   // true
isNumber("-2")  // true

或映射列表以获取iso格式的所有时间戳:

localtime = dts[0].astimezone(timeZone).isoformat()

答案 1 :(得分:0)

dts是时区列表。所以你需要这样做:

[ts.astimezone(timeZone) for ts in dts]

这将为您提供三个时区的列表