fork download
  1. #!/bin/bash
  2.  
  3. # ideone boilerplate - we can't write files in the home directory;
  4. # so create a temporary directory for our files instead
  5. t=$(mktemp -d -t ideone.XXXXXXXXXXXX) || exit
  6. trap 'rm -rf "$t"' ERR EXIT
  7. cd "$t"
  8.  
  9. mkdir inputs
  10. cat <<\: >inputs/first.csv
  11. header,result
  12. :
  13.  
  14. cat <<\: >inputs/second.csv
  15. header
  16. noresult
  17. :
  18.  
  19. cat <<\: >inputs/third.csv
  20. header,result
  21. nothing,
  22. :
  23.  
  24. cat <<\: >inputs/_4th.csv
  25. header,result
  26. something,other
  27. :
  28.  
  29. cat <<\: >script.py
  30. import csv
  31. import os
  32. from glob import glob
  33.  
  34.  
  35. path="inputs"
  36.  
  37. with open("SUMMARY.csv", 'w', encoding='utf-8') as output_file:
  38. writer = csv.writer(output_file)
  39. writer.writerow(['SCENARIO', 'STATUS'])
  40. for filename in glob(f"{path}/*.csv"):
  41. with open(filename, 'r', encoding='utf-8') as input_file:
  42. value = "FAIL"
  43. reader = csv.reader(input_file)
  44. for lineno, line in enumerate(reader, 1):
  45. if lineno != 2:
  46. continue
  47. if len(line) > 1 and line[1] != "":
  48. value = "PASS"
  49. break
  50. writer.writerow([os.path.basename(filename).split(".")[0], value])
  51. :
  52.  
  53. python3 script.py
  54.  
  55. nl SUMMARY.csv
  56.  
Success #stdin #stdout 0.03s 9604KB
stdin
Standard input is empty
stdout
     1	SCENARIO,STATUS
     2	_4th,PASS
     3	third,FAIL
     4	second,FAIL
     5	first,FAIL