Автор Тема: Запис на файл във цикъла (не селед изпълнението му) Python  (Прочетена 2617 пъти)

NikolaiTalev

  • Напреднали
  • *****
  • Публикации: 307
  • Distribution: Debian Wheezy
  • Window Manager: KDE
    • Профил
    • WWW
Код:
#!/usr/bin/env python

# import the serial module so we can access the serial port
import serial
import time
# set up serial port
serialPort0 = serial.Serial('/dev/ttyACM3', 57600)

# open file object in write mode
dataFile = open('data.dat', 'w')
 
# get number of samples to take
# don't prompt user --> piped in from bash script
numberSamples = 30

# get specified number of samples

print 'conected'



for i in range(numberSamples+1):
 

  reading0 = serialPort0.readline()
 
  dataFile.writelines(str(i) + ' ' + str(reading0)) # write sample number and reading to the file
 
  print i ,reading0 # output sample number to screen
 
# close file object, good practice
dataFile.close()

# close serial port to free it for other applications
serialPort0.close()


Идеята на този скрипт е да записва данни във файл които после да чертая с gnuplot но проблема е, че записва стойностите след края на цикъла for а на мен ми трябва стойност запис стойност запис ...
за да мога да гледам графиката в реално време. Със питон до сега съм се сблъсквал само един път едно скрипче за 3g трафик и ми е много тъмна индия.
« Последна редакция: May 20, 2014, 18:02 от NikolaiTalev »
Активен

Веднъж Linux, цял живот Linux.

http://blog.nk-support.eu/

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Има няколко варианта dataFile.flush() след линията dataFile.writelines(...) или да направиш файла да не  се буферира още при отварянето dataFile = open('data.dat', 'w', 0) или да се буферира на линия dataFile = open('data.dat', 'w', 1). Ако покажеше как ползваш gnuplot-a, не съм видял може да има питон байдване, може да се мине и без писане във файл, а направо да си комуникират.
Активен

NikolaiTalev

  • Напреднали
  • *****
  • Публикации: 307
  • Distribution: Debian Wheezy
  • Window Manager: KDE
    • Профил
    • WWW
Има няколко варианта dataFile.flush() след линията dataFile.writelines(...) или да направиш файла да не  се буферира още при отварянето dataFile = open('data.dat', 'w', 0) или да се буферира на линия dataFile = open('data.dat', 'w', 1). Ако покажеше как ползваш gnuplot-a, не съм видял може да има питон байдване, може да се мине и без писане във файл, а направо да си комуникират.

Мерси  :)  dataFile = open('data.dat', 'w', 0) свърши работа. Без писане във файл става или поне трябва да може но не знам как да го направя с gnuplot.py.
За сега съм пробвал само демотата след като го инсталирах.
В момента ползвам gnuplot така:

Код:
#!/bin/bash
echo "start" > /dev/ttyACM3
echo "Sampling..."
sleep 2;

gnuplot -persist -e "set xlabel 'време, sec';
set xrange [0:*];

set ylabel 'температура, °C';
set yrange [0:*];

set title 'Определяне на инертността';
set key reverse Left outside;
set grid;
 
set style data line;


plot 'data.dat' using 1:2 title 'Грил'"
#set autoscale;

echo "Done!"

Така ме устройва но ми се иска да направя да може да се задават параметри например numbersamples тъй като и идея си нямам от pyton и GUI си  мислех не може ли да се направи пак с bash и при стратирането да пита брой измервания име на дата файла ....

Моля всеки който има идея или някакво предложение да сподели  :D
« Последна редакция: May 19, 2014, 10:59 от NikolaiTalev »
Активен

Веднъж Linux, цял живот Linux.

http://blog.nk-support.eu/

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Пакетиране на python скрипт
Общ форум
pink 0 3071 Последна публикация Jul 12, 2007, 15:34
от pink
Python 3.1.2
Настройка на програми
fatalerrorbg 10 5014 Последна публикация Aug 30, 2010, 14:39
от bop_bop_mara
Проблем с Python
Настройка на програми
f1r3fl3x 4 3845 Последна публикация Jun 23, 2011, 22:25
от f1r3fl3x
Алгоритъм от Python в PHP.
Web development
bohosh 3 3291 Последна публикация Feb 23, 2014, 18:45
от gat3way
Искам да се зарежда python 3.7 вместо python 2.7
Web development
3p0 36 18040 Последна публикация Dec 27, 2019, 00:49
от 4096bits