我正在尝试使用以下输出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
答案 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()])