์๋ ํ์ธ์.
์ ๊ฐ ํต์ ์ ๊ณต์ผ๋ก ํ๋กํ ์ฝ ๋ฑ๋ ์ค์ํ์ง๋ง ์ ํํ ์ผ์ ๋ฐ์ดํฐ ์์งํ๋ ๊ฒ๋ ๊ต์ฅํ ์ค์ํ๋ค๊ณ ์์ฆ ๋๋๋๋ค.
์ ํํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋, ํํฐ๋ง์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ ํํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ผ๋ ๊ฒ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
UART Serial ํต์ (9600, 115200bps)์ ํตํด ๊ฐ์ฅ ์ฌํํ CSVํ์์ด ํ์ฌ ๊ตฌ๊ธ์์ ๊ฐ์ฅ ๋๊ณ ์์ต๋๋ค.
๋งค๋ฒ ๋ฐ์ดํฐ ์์ง์ ์ํด ๋ฐ์ดํฐ ์ง๋ ๊ฒ์ด ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์ ์ ๋ฅผ ์ํด ๋ฉ๋ชจ์ฅ ๋๋์ผ๋ก ์ฝ๋ฉ์ ๊ธฐ๋กํ์ต๋๋ค.
ํ์ด์ฌ ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์ฝ๊ฒ ์ ์ ์์ง๋ง, ๋ฒ์ญ๊ธฐ์ ๋๋ฆฐ ํ๊ตญ๋ง์ด ์ฝ๊ฐ ์ด์ํฉ๋๋ค.
https://docs.python.org/ko/3/library/csv.html
import os
path_ = './data/test.csv'
fieldnames = ['device_name','f_port', 'ucnt', 'dr', 'rssi', 'snr', 'channel', 'lat', 'long_', 'alt']
if __name__ == '__main__':
file_exists = os.path.isfile(path_)
while(1):
"""
Do something ex) serial.read, post, parsing...
"""
with open(file_name, 'a', newline='\n') as csvfile:
wr = csv.DictWriter(csvfile, delimiter=',', fieldnames=fieldnames)
if not file_exists: wr.writeheader()
wr.writerow({
'device_name' :device_name,
'f_port':f_port,
'ucnt' : ucnt,
'dr' :dr,
'rssi':rssi,
'snr':snr,
'channel':channel,
'lat':lat,
'long_': long_,
'alt': alt})
1. with๋ฌธ์ ์ฌ์ฉํ ์ด์ :
์ฐ์ ํ์ด์ฌ ๊ณต์๋ฌธ์๋ with๋ฌธ์ ์ฐ๊ธฐ ๊ถ์ฅํ๋ค. ํ์ผ ์ฐ๊ธฐ ์ํด์ ํ์ผ์ ์ด์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๊ธฐ๊ฐ ์๋ฃ๋๋ฉด ๋ซ์์ผ ํฉ๋๋ค. ํ์ง๋ง ํ์ผ ์ฐ๊ธฐ๊ฐ ์๋ฃ๋์์ง๋ง, ํ์ผ์ด ์ด๋ ค ์์ผ๋ฉด ํ์ผ์ด ๊นจ์ง๊ฑฐ๋, ์ ๋๋ก ๋ ๋ฐ์ดํฐ๊ฐ ์๋ ์ ์์ต๋๋ค. with๋ฌธ์ ์ด๋ฅผ ๋ฐฉ์ง ์ํด ํ์ผ ์ด๊ธฐ, ๋ซ๊ธฐ๋ฅผ ์๋์ผ๋ก ํด์ค๋๋ค.
2. ์ csv ์ ์ฅํ๋ ์ฝ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ด ์ ์ฅํ๋ ํ์์ด๋ฉฐ, ๋ง์ฝ ํ์ผ ์ด๋ฆ(path_)์ด ์ง์ ํ ๊ฒฝ๋ก(./data/) ๋ด์ ์ด๋ฆ์ด ๊ฐ์ ํ์ผ์ด ์๋ค๋ฉด, csv header(fieldnames)๋ฅผ ์ถ๊ฐํ๋ค. ํ์ผ ์ด๋ฆ์ด ์ง์ ํ ๊ฒฝ๋ก ๋ด์ ์ด๋ฆ์ด ๊ฐ์ ํ์ผ์ด ์๋ค๋ฉด, csv header๋ฅผ ์ถ๊ฐํ์ง ์๊ณ , ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ด์ด ์ ์ฅํ๋ค.
csv ํํ๋ฅผ ์ ๋ง๋ค์ด ๋์ผ๋ฉด ๋์ค์ pandas ํน์ matlab๊ฐ์ง๊ณ ๋๊ธฐ ํธํฉ๋๋ค.
์ด๋ฐ ๋๋์ ์ฝ๋๋ฅผ ์ ์ ์ง๋๊ณ ๋ ๋ชป์ฐพ์์ ์๋ก ์ง๊ณ ๋ฅผ 3๋ฒ ์ ๋ ๋ฐ๋ณตํ ์ฏค ๊ทธ๋ฅ ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๊ธฐ๋ก ํ์ต๋๋ค.
'๐ Python > Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ์๋ ๊ณต๊ฐ ๋๋ฅด๊ธฐ (0) | 2023.10.02 |
---|---|
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ์๋ก ์ด์ ์ถ๊ฐ ํ๋ก๊ทธ๋จ ver1.0, ver2.0 (1) | 2023.10.02 |
[ํ์ด์ฌ ํ๋ก์ ํธ] Python Struct (feat.c์ธ์ด) (1) | 2021.09.09 |
[ํ๋ก์ ํธ]Pandas Dataframe์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๊ณผ์ (1) | 2021.02.23 |