所以我有一些看起来像这样的代码:
measure_list=[]
for file in file_list:
with open(file,"r") as read_data:
y=read_data.read()
if "Part: ABCD" in y:
for line in m:
if "Measure X:" in line:
measure_list.append(line)
elif "Measure Y:" in line:
measure_list.append(line)
final=''.join(measure_list).replace("Measure","\nMeasure")
print(final)
(这最后一部分只是帮助组织输出)
因此,代码的这一部分打开一组文件并扫描每一个文件以查看它是否是"部分:ABCD",如果是,它将拉出"测量的行X:"和"测量Y:"并将它们添加到measure_list。我的问题是我有很多文件,会有多个"部分:ABCD"文件。在使用.join()加入列表后,输出将如下所示:
Part: ABCD
Measure X: (Numbers)
Measure Y: (Numbers)
Measure X: (Numbers)
Measure Y: (Numbers)
Measure X: (Numbers)
Measure Y: (Numbers)
我的问题是,如果有人知道组织输出的方法,那么它看起来像这样:
Part: ABCD
Measure X: (Numbers)
Measure X: (Numbers)
Measure X: (Numbers)
Measure Y: (Numbers)
Measure Y: (Numbers)
Measure Y: (Numbers)
感谢任何帮助。
答案 0 :(得分:3)
为什么不使用两个列表?
if "Measure X:" in line:
listx.append(line)
elif "Measure Y:" in line:
listy.append(line)
然后简单地
final = ''.join(listx + listy)
答案 1 :(得分:1)
创建两个输出数组,并使用带有if语句的for循环对每个输出进行排序。然后加入两个输出。
答案 2 :(得分:1)
我没有在我面前放置python,因此可能需要进行轻微的语法编辑。这应该按照"测量X的X和Y部分对列表进行排序:..."
sorted(measure_list,key=lambda item: item.split()[1][0])
答案 3 :(得分:1)
您的measure_list
似乎是这样的:
['Measure X: 1000', 'Measure Y: 2000', 'Measure X: 100' , 'Measure Y: 900']
如果这是正确的,您可以简单地对此measure_list
进行排序:
measure_list.sort()
然后你会:
['Measure X: 100', 'Measure X: 1000', 'Measure Y: 2000', 'Measure Y: 900']