0

我正在尝试获取以下输出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

4

5 回答 5

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

或(显然不理解 q )带有空格的行:

dict(f.split(' ', 2) for f in file_list_attr)
于 2012-05-15T13:28:32.090 回答
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
于 2012-05-15T13:39:41.920 回答
0

不知道你的代码到底是什么。

data = {}
for file in file_list:
    data[f.filename] = f.st_mtime
于 2012-05-15T13:28:36.300 回答
0

不清楚你需要什么,如果你想处理你的代码输出来创建一个 dict 你可以做这样的事情:

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
于 2012-05-15T13:41:42.363 回答
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()])
于 2012-05-15T14:14:52.410 回答