Вы уверены, что вы хотите добавить его в начало файла? Я чувствую, что вы хотите добавить его в конец, или если вы хотите добавить его в начале, вы, по крайней мере, захотите поместить его после строки заголовка, которая является ['name', 'value'].
В его нынешнем сценарии имеется несколько ошибок при попытке скомпилировать его, чтобы я мог немного помочь вам.
- Строка каталога не работает из-за косых черт. Он будет работать, если вы добавите r впереди (для необработанной строки), например
r'C:/Users/AMB/Documents/Aptana Studio 3 Workspace/RAVE/RAVE/resources/csv/temperature.csv'
- Вам не нужен JSON для импорта json или ведения журнала, если это весь код.
- Внутри вашего цикла for вы переопределяете создателя температуры, который не нужен, ваше определение в начале достаточно хорошее.
- У вас есть лишняя запятая в вашей линии
output = [timeperiod, temp,]
Передвижение на сценарий, который вставляет одну точку данных. Этот скрипт читается в вашем существующем файле. Вставляет новую строку (вы использовали бы случайные значения, я использовал 1 для времени и 2 для значения) во второй строке, которая находится под заголовком. Сообщите мне, если это не то, что вы ищете.
directory = r"C:/Users/AMB/Documents/Aptana Studio 3 Workspace/RAVE/RAVE/resources/csv/temperature.csv"
with open(directory, 'r') as csvfile:
s = csvfile.readlines()
time = 1
value = 2
s.insert(2, '%(time)d,%(value)d\n\n' % \
{'time': time, "value": value})
with open(directory, 'w') as csvfile:
csvfile.writelines(s)
Следующий раздел в ответ на ваш более подробный вопрос в комментариях:
import csv
import random
directory = r"C:\Users\snorwood\Desktop\temperature.csv"
# Open the file
with open(directory, 'r') as csvfile:
s = csvfile.readlines()
# This array will store your data
data = []
# This for loop converts the data read from the text file into integers values in your data set
for i, point in enumerate(s[1:]):
seperatedPoint = point.strip("\n").split(",")
if len(seperatedPoint) == 2:
data.append([int(dataPoint) for dataPoint in seperatedPoint])
# Loop through your animation numberOfLoops times
numberOfLoops = 100
for i in range(numberOfLoops):
if len(data) == 0:
break
del data[0] # Deletes the first data point
newTime = data[len(data) - 1][0] + 1 # An int that is one higher than the current last time value
newRandomValue = 2
data.append([newTime, newRandomValue]) # Adds the new data point to the end of the array
# Insert your drawing code here
# Write the data back into the text file
with open(directory, 'w') as csvfile: #opens the file for writing
temperature = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL) # The object that knows how to write to files
temperature.writerow(["name", "values"]) # Write the header row
for point in data: # Loop through the points stored in data
temperature.writerow(point) # Write current point in set
примечание стороны вы можете изменить функцию ограничения на 'макс (мин (значение, max_value), min_value) 'также вы не можете делать то, что хотите, вам нужно будет прочитать весь CSV, добавьте свою ценность и выпишите весь ваш csv –
Взгляните на [это] (http://stackoverflow.com/questions/5914627/append- line-to-start-of-a-file) ответ – RickyA