. 파이썬 스크립트를 .CSV 파일로 계속 작성하려고하는데 파이썬에 관해서는 초보자입니다. 나는 현재 온도, 습도, 시간, 현재 코드를 포함하는 센서 데이터의 목록을 저장하기 위해 노력하고있어 Writing List of Strings to Excel CSV File in Python목록의 데이터를 CSV 파일로 계속 쓸 수 있음
:
나는 비슷한 문제가 있지만 성공하지 않고있다이 사람을 따르도록 노력했습니다 다음과 같이 : interable 예상, 그래서 첫 번째 데이터 값이 내가 생각 정수 (int)에 저장되어 을 int로하지 :
이def writeDataToFile():
sensorData = []
sensorData = getSensorData()
with open("/home/pi/Documents/Python Projects/CSV-files/sensor_data.csv", 'w') as csv_file:
writer = csv.writer(csv_file, delimiter=',')
writer.writerows(sensorData)
내가지고있어 오류이 무엇입니까?
유형을 정의하는 Java에 익숙하지만 여기서는 변수를 입력하기 만하면 uhm yeah입니다.
필자는 Writer.writerow (sensorData)를 시도한 다음 작동하지만 이미 예상 한대로 데이터의 단일 행을 작성합니다.
나머지 코드는 데이터를 목록에 저장하는 while 루프에서 실행됩니다.
내 루프가 계속 실행될 때이 기능을 사용하여 CSV 파일에 계속 쓰기를 어떻게합니까?
getSensorData 기능 :
def getSensorData():
sensorData = []
temperature = getTemperatureFromSensor()
humidity = getHumidityFromSensor()
time = getCurrentFormatedTimestamp()
sensorData.append(temperature)
sensorData.append(humidity)
sensorData.append(time)
return sensorData
그래서 나는 단순히 목록을 인쇄하기 위해 시도하고 내가 뭔가를 할 원하는 정확히 수행합니다
[29, 21, '2017년 10월 30일 15시 2분 47초 ']
[29, 21'2017년 10월 30일 15시 2분 52초 ']
[29, 22'2017년 10월 30일 15시 2분 57초 ' ]
,210[29, 21 '2017년 10월 30일 15시 3분 2초']
[28, 21 '2017년 10월 30일 15시 3분 7초']
[28 (21) '2017년 10월 30일 15시 3분 13초']
등, 즉 난 CSV로 저장하고 싶은 기본적이다
'getSensorData()'함수를 볼 수 있습니까? – scharette
IIUC, 문제는 모든 기존 내용을 완전히 지우는 쓰기 모드 'w'로 파일을 여는 것입니다. 추가 모드에서 열어야합니다. 'getSensorData()'는'int'를 리턴하므로, 당신이 그 메소드를 호출 할 때마다 그 값을'writerow' 할 필요가 있습니다. – roganjosh
좋아요, 그래서'writerows'는 당신이 중첩 된리스트를 넘겨 줄 것을 기대합니다. 각각의 내부리스트는 하나의 행을 나타냅니다. 단일의리스트를 건네 주면 실제로는 최초의 행을 나타내는리스트를 요구하고있는 동안에 인덱스 0에 int 값이 있습니다. 그것이 오류의 출처입니다. 'writerow'를 사용해야합니다. 그건 내 이전의 덧글 이외에; 파일을 열 때마다 이전 데이터를 덮어 쓰지 않도록 추가 모드가 필요합니다. – roganjosh