空间将数据分成一个字典

时间:2012-05-15 13:24:47

标签: python

我正在尝试使用以下输出2_YEAR_912828SR2_20120514.dat 1337045684并创建一个字典,其中名称为键,日期为值

#get file attributes
datadict = {}

file_list_attr = sftp.listdir_attr()
for f in (file_list_attr): 
   fname = f.filename
   fdate = f.st_mtime

   print fname, fdate

2_YEAR_912828SR2_20120514.dat 1337045684

5 个答案:

答案 0 :(得分:1)

dict((f.filename, f.st_mtime) for f in file_list_attr)

或(显然不明白q)对于带空格的行:

dict(f.split(' ', 2) for f in file_list_attr)

答案 1 :(得分:1)

如果您将f作为具有以下属性的对象:

for f in (file_list_attr):
    datadict[f.filename] = f.st_mtime

这就是你的代码。但我认为你有f字符串,所以你必须把它分成两部分:

for f in (file_list_attr):
    filename, st_mtime = f.split(' ', 2)
    datadict[filename] = st_mtime

答案 2 :(得分:0)

不确切知道您的代码是什么。

data = {}
for file in file_list:
    data[f.filename] = f.st_mtime

答案 3 :(得分:0)

如果您想处理代码的输出以创建可以制作的词典,那么您是否需要清楚 像这样的东西:

output = """2_YEAR_912828SR2_20120514.dat 1337045684
2_YEAR_912828SR2_20120515.dat 1337045684
2_YEAR_912828SR2_20120516.dat 1337045684"""

result_dict = {}
for l in output.splitlines():
    k, v = l.split()
    result_dict[k] = v

答案 4 :(得分:0)

这是一个工作示例,它还负责数据转换(时间戳 - >日期):

from datetime import date

with open("file_with_data.txt", "r") as fl:
    datadict = dict([ (file_name, date.fromtimestamp(float(timestamp))
      for line in fl.readlines() for file_name, timestamp in line.split()])