Skip to content Skip to sidebar Skip to footer

Writing Into Csv File Using Python

Here some simple code I have written. Data is not accumulated in the CSV file; can someone share code to read data from serial port and log this to a CSV file? import serial import

Solution 1:

As noted, since you're not passing anything to result.writerow() nothing is being written to the CSV file. But I'm also concerned that you're reading 50 bytes at a time from the serial port, then splitting it on the : character and then splitting it on a \r\n delimiter. I don't think this is going to do what you want.

My guess is that you are expecting the serial port to deliver lines terminated by \r\n, each line consisting of a set of fields separated by :, and you want to write these fields to a CSV file. I'd recommend trying something like this instead:

with open("test.txt", "wb") as output_file:
    csv_out = csv.writer(output_file, delimiter=',', dialect='excel-tab')
    csv_out.writerow("date","zenith","elevation","azimuth","conv_elevation")

    ser=serial.Serial(port=3, baudrate=9600, timeout=60)
    ser.open()
    for count in range(10):
        str = ser.readline().rstrip()
        csv_out.writerow(str.split(':'))
    ser.close()

I haven't used the Python serial module and don't currently have hardware to test this, but based on my reading of the module documentation this should be closer to what you want to do. I think the read timeout is measured in seconds, so this will time out if the serial port doesn't produce any data for one minute.


Solution 2:

import serial
import csv
import string
import os
import time
import sys

def main():
    pass

if __name__ == '__main__':
    main()
    ser=serial.Serial()
    ser.port=2
    print ser.port
    ser.baudrate=9600
    with open("test.csv", "wb") as output_file:
        csv_out = csv.writer(output_file, delimiter=',', dialect='excel-tab')
        C_statememt=("date","time","Zenith","Azimuth","Elevation","conv_elevation");
    ser.open()
    for count in range(10):
        str = ser.readline().rstrip()
        C_statememt.writerow(str.split(':'))
    ser.close()

error report:

2
Traceback (most recent call last):
  File "C:\Documents and Settings\Administrator\My Documents\python code\code3\module1.py", line 28, in <module>
    C_statememt.writerow(str.split(':'))
AttributeError: 'tuple' object has no attribute 'writerow'

Post a Comment for "Writing Into Csv File Using Python"