fork download
  1. #!/usr/bin/env python3
  2. import sys
  3.  
  4. section = []
  5. lattice = False
  6.  
  7. def sort_em(lines):
  8. return ''.join(sorted(lines, key=lambda x: tuple(map(float, x.split()[2:4]))))
  9.  
  10. def print_em(*lines):
  11. print(*lines, end='')
  12.  
  13. for line in sys.stdin:
  14. if line.startswith('1080\n'):
  15. if section:
  16. print_em(sort_em(section))
  17. section = []
  18. lattice = True
  19. print_em(line)
  20. elif lattice:
  21. if not line.startswith('Lattice="'):
  22. raise ValueError('Expected Lattice="..." but got %s' % line)
  23. lattice = False
  24. print_em(line)
  25. else:
  26. section.append(line)
  27. if section:
  28. print_em(sort_em(section))
  29.  
Success #stdin #stdout 0.02s 9048KB
stdin
1080
Lattice="89.8218778092 0.0 0.0 0.0 15.8543061924 0.0 0.0 0.0 25.203816" Properties=id:I:1:species:S:1:
1 1 -0.00119157 -5.67557e-05 -1.49279e-04
2 3 0.00220589 -0.00133867 9.67397e-04
3 2 -5.43822e-04 -0.00119676 -8.99064e-05
4 2 -6.41352e-04 0.00141217 -9.7045e-04
5 2 -0.00150877 0.00157414 -2.09384e-04
6 1 3.78104e-05 2.68451e-04 8.28308e-04
7 3 -7.85994e-05 0.00275033 9.166e-04
8 2 9.58097e-04 6.38031e-04 -2.60307e-04
9 2 2.35745e-04 9.4439e-04 0.00102949
10 2 0.00132834 0.00224946 -2.79673e-04
11 1 0.00112904 -1.03332e-04 -2.5445e-04
12 3 -0.00116792 9.70232e-04 8.64919e-04
13 2 -0.00116417 4.87976e-05 3.88301e-04
14 2 9.47863e-04 -0.00120627 0.00239315
15 2 -5.38324e-04 -5.35572e-04 -7.69147e-05
16 1 0.00105274 8.17933e-04 0.00155765
....
1080
Lattice="89.8218778092 0.0 0.0 0.0 15.8543061924 0.0 0.0 0.0 25.203816" Properties=id:I:1:species:S:1:
1 1 -0.00119157 -5.67557e-05 -1.49279e-04
2 3 0.00220589 -0.00133867 9.67397e-04
3 2 -5.43822e-04 -0.00119676 -8.99064e-05
4 2 -6.41352e-04 0.00141217 -9.7045e-04
5 2 -0.00150877 0.00157414 -2.09384e-04
6 1 3.78104e-05 2.68451e-04 8.28308e-04
7 3 -7.85994e-05 0.00275033 9.166e-04
8 2 9.58097e-04 6.38031e-04 -2.60307e-04
9 2 2.35745e-04 9.4439e-04 0.00102949
10 2 0.00132834 0.00224946 -2.79673e-04
11 1 0.00112904 -1.03332e-04 -2.5445e-04
12 3 -0.00116792 9.70232e-04 8.64919e-04
13 2 -0.00116417 4.87976e-05 3.88301e-04
14 2 9.47863e-04 -0.00120627 0.00239315
15 2 -5.38324e-04 -5.35572e-04 -7.69147e-05
16 1 0.00105274 8.17933e-04 0.00155765
....
stdout
1080
Lattice="89.8218778092 0.0 0.0 0.0 15.8543061924 0.0 0.0 0.0 25.203816" Properties=id:I:1:species:S:1:
....
5 2 -0.00150877 0.00157414 -2.09384e-04
1 1 -0.00119157 -5.67557e-05 -1.49279e-04
12 3 -0.00116792 9.70232e-04 8.64919e-04
13 2 -0.00116417 4.87976e-05 3.88301e-04
4 2 -6.41352e-04 0.00141217 -9.7045e-04
3 2 -5.43822e-04 -0.00119676 -8.99064e-05
15 2 -5.38324e-04 -5.35572e-04 -7.69147e-05
7 3 -7.85994e-05 0.00275033 9.166e-04
6 1 3.78104e-05 2.68451e-04 8.28308e-04
9 2 2.35745e-04 9.4439e-04 0.00102949
14 2 9.47863e-04 -0.00120627 0.00239315
8 2 9.58097e-04 6.38031e-04 -2.60307e-04
16 1 0.00105274 8.17933e-04 0.00155765
11 1 0.00112904 -1.03332e-04 -2.5445e-04
10 2 0.00132834 0.00224946 -2.79673e-04
2 3 0.00220589 -0.00133867 9.67397e-04
1080
Lattice="89.8218778092 0.0 0.0 0.0 15.8543061924 0.0 0.0 0.0 25.203816" Properties=id:I:1:species:S:1:
....5 2 -0.00150877 0.00157414 -2.09384e-04
1 1 -0.00119157 -5.67557e-05 -1.49279e-04
12 3 -0.00116792 9.70232e-04 8.64919e-04
13 2 -0.00116417 4.87976e-05 3.88301e-04
4 2 -6.41352e-04 0.00141217 -9.7045e-04
3 2 -5.43822e-04 -0.00119676 -8.99064e-05
15 2 -5.38324e-04 -5.35572e-04 -7.69147e-05
7 3 -7.85994e-05 0.00275033 9.166e-04
6 1 3.78104e-05 2.68451e-04 8.28308e-04
9 2 2.35745e-04 9.4439e-04 0.00102949
14 2 9.47863e-04 -0.00120627 0.00239315
8 2 9.58097e-04 6.38031e-04 -2.60307e-04
16 1 0.00105274 8.17933e-04 0.00155765
11 1 0.00112904 -1.03332e-04 -2.5445e-04
10 2 0.00132834 0.00224946 -2.79673e-04
2 3 0.00220589 -0.00133867 9.67397e-04