On 2014-02-04 04:07, Thomas wrote:
I've written a script to log data from my Arduino to a csv file. The script works well enough but it's very, very slow. I'm quite new to Python and I just wanted to put this out there to see if any Python experts could help optimise my code. Here it is:
[snip]
# Cleaning the data_log and storing it in data.csv with open('data.csv','wb') as csvfile: for line in data_log: line_data = re.findall('\d*\.\d*',line) # Find all digits line_data = filter(None,line_data) # Filter out empty strings line_data = [float(x) for x in line_data] # Convert Strings to float for i in range(1,len(line_data)): line_data[i]=map(line_data[i],0,1023,0,5)
You're doing this for every in line the log:
csvwrite = csv.writer(csvfile)
[snip] Try moving before the 'for' loop so it's done only once. -- https://mail.python.org/mailman/listinfo/python-list