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文字列として持っていると思うので、それを2つに分割する必要があります:

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 に答える