我有一个包含以下格式的100个文件的目录。

 summary-0000016b9bf45ec8-AAAACCCC0286.json
 summary-0000016b9bf47180-AAAACCCC0286.json
 summary-0000016b9bf47746-AAAACCCC0286.json
 summary-0000016b9bf47cd8-AAAACCCC0286.json
 summary-0000016b9bf47f48-AAAACCCC0286.json
 summary-0000016b9bf4818e-AAAACCCC0286.json

我需要在摘要后提取字段并创建它的list。我正在使用一个空的list并试图将我的输出附加到它。下面是创建空list并将我提取的字段附加到其中的代码。

for files in dir:
  if 'summary' in files and len(files.split('-')) > 1:
    s_addr = []
    s_addr.append(files.split('-')[1])
    print (s_addr)

我得到的输出是每个项目的list,如下所示:

['0000016b9bf31d5e']
['0000016b9bf45ec8']
['0000016b9bf1d8c4']
['0000016b9bf3c920']
['0000016b9bf2371f']
['0000016b9bf3d8ec']
['0000016b9bf11cb6']

预期产出是:

['0000016b9bf31d5e','0000016b9bf45ec8','0000016b9bf1d8c4','0000016b9bf3c920','0000016b9bf2371f','0000016b9bf3d8ec','0000016b9bf11cb6']

我究竟做错了什么?

分析解答

你的订购是错误的。您不希望每次都重写list,因此您需要将s_addr放在for循环之外:

s_addr = []
for files in dir:
  if 'summary' in files and len(files.split('-')) > 1:
    s_addr.append(files.split('-')[1])
print (s_addr)