read_csv.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #! /usr/bin/env python
  2. # Sample of reading a CSV file
  3. #
  4. # https://stackoverflow.com/questions/41585078/how-do-i-read-and-write-csv-files-with-python
  5. #
  6. import csv
  7. import sys
  8. files = sys.argv[1:]
  9. if len(files) == 0:
  10. sys.stderr.write("Usage: read_csv.py file [file...]\n")
  11. sys.exit(1)
  12. MAXLINES = 10000
  13. # # Define data
  14. # data = [
  15. # (1, "A towel,", 1.0),
  16. # (42, " it says, ", 2.0),
  17. # (1337, "is about the most ", -1),
  18. # (0, "massively useful thing ", 123),
  19. # (-2, "an interstellar hitchhiker can have.", 3),
  20. # ]
  21. # # Write CSV file
  22. # with open("test.csv", "wt") as fp:
  23. # writer = csv.writer(fp, delimiter=",")
  24. # # writer.writerow(["your", "header", "foo"]) # write header
  25. # writer.writerows(data)
  26. # Read CSV file
  27. for file in files:
  28. with open(file) as fp:
  29. reader = csv.reader(fp, delimiter=",", quotechar='"')
  30. # next(reader, None) # skip the headers
  31. # data_read = [row for row in reader]
  32. # print(data_read)
  33. lineno = 0
  34. num_column_headrs = 0
  35. print_first_n = 5
  36. for row in reader:
  37. lineno += 1
  38. if lineno == 1:
  39. num_column_headers = len(row)
  40. len_row = len(row)
  41. if len_row != num_column_headers:
  42. sys.stderr.write(f"Bad coumn count: line {lineno} has {len_row} colums. Expecting {num_column_headers}\n")
  43. print(row)
  44. sys.exit()
  45. if lineno <= print_first_n:
  46. print(row)
  47. if lineno > MAXLINES:
  48. break
  49. sys.stderr.write(f"Done: read {lineno} lines.\n")