Linux, tiedon lukeminen ja tallentaminen csv

Pitäisi kerran minuutissa saada luettua tiedostosta rivi, ja tallentaa tätä tietoa csv tietoihin niin että halutessaan saa helposti tarkasteltua tuloksia esim. Excelillä.

Miten onnistuu?

Tiedostosta luettava tieto on muodossa
t=
Arvo pitää jakaa tonnilla (1000) ennen käyttöä.

Luin jostain crontab anagron jutuista mutta menevät yli hilseen.
10345
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Suoli24 näköjään poisti tekstiä.

Luettava arvo on muodossa

t=xxxxx jossa x:t ovat numeroita.

Äänestä

Cronilla voit ajastaa tehtäviä suoritettavaksi automaattisesti.
https://help.ubuntu.com/community/CronHowto

Onko luettavassa tiedostossa enemmänkin rivejä vai pelkästään tuo yksi tieto? Ja minkä muotoiseen CSV-tiedostoon se pitää kirjoittaa? Jos siinä on vain yksi tieto niin onko mitään järkeä viedä sitä edes exceliin?

Jos tiedosto on noin simplleki kuin sanot niin voit tehdä sen suoraan bash skriptinä. Jos vähänkään monimutkaisempi niin python olisi erinomainen työkalu siihen ja löytyy todennäköisesti oletuksena.

Äänestä

Siis, siinä tiedostossa on muutama rivi, joiden seassa on sitten se tarvittava tieto muodossa t=xxxxx.

Sitä tiedostoa (tai siitä tiedostosta) pitäisi saada otettua se tieto, jakaa se 1000:lla että saadaan järkevää arvoa ulos, ja laittaa se CSV tiedostoon josta saisi nätin taulukon exceliin niin että voi tehdä graafisia kuvioita. CSV muodoista ei ole hajua.

Tarkoituksena on kerran minuutissa ottaa se arvo ja tallentaa se siihen tiedoston jatkoksi, ei siis uutta tiedostoa.


Vaikea selittää...

CSV Tiedosto ekan minuutin jälkeen:
xx.xxx

CSV Tiedosto viiden minuutin jälkeen:
xx.xxx
xx.xxx
xx.xxx
xx.xxx
xx.xxx

Jotain tuon tyylistä olisi tarkoitus saada aikaiseksi.

Äänestä
  • CSV tulee sanoista "Comma Separated Values" eli pilkulla erotetut arvot. Eli se on tekstipohjainen tiedostomuoto joka tukee taulukkomuotoista dataa pilkulla (tai jollain toisella välimerkillä eroteltuna). Tässä ei tarvita CSV:tä koska jokaiselle riville tulee vain yksi arvo.

    Kirjoitetaanko se input tiedosto aina yli vai tuleeko sinne kokoajan lisää tauhkaa loppuun?

    Äänestä

  • 111119 kirjoitti:

    CSV tulee sanoista "Comma Separated Values" eli pilkulla erotetut arvot. Eli se on tekstipohjainen tiedostomuoto joka tukee taulukkomuotoista dataa pilkulla (tai jollain toisella välimerkillä eroteltuna). Tässä ei tarvita CSV:tä koska jokaiselle riville tulee vain yksi arvo.

    Kirjoitetaanko se input tiedosto aina yli vai tuleeko sinne kokoajan lisää tauhkaa loppuun?

    Loppuun pitäisi lisätä tavaraa.
    CSVtä olen aikonut käyttää koska se on minun tietääkseni yhteensopiva excelin kanssa.

    Äänestä

  • linux csv kirjoitti:

    Loppuun pitäisi lisätä tavaraa.
    CSVtä olen aikonut käyttää koska se on minun tietääkseni yhteensopiva excelin kanssa.

    Tarkoitan että input tiedosto koko ajan päivittyy, ja CSV tiedoston loppuun pitäisi lisätä tavaraa.

    Äänestä

  • linux csv kirjoitti:

    Tarkoitan että input tiedosto koko ajan päivittyy, ja CSV tiedoston loppuun pitäisi lisätä tavaraa.

    Testaa tuolla
    http://pastebin.com/PtCi3yZb

    Testattu windowzessa python 2.7 sekä 3.3. Pitäisi periaatteessa toimia linuxissa mutta en voi juuri nyt testata.

    Aja ensin manuaalisesti ja katso tekeekö mitä pitää. Sitten laita cron jobi suorittamaan se automaagisesti

    Äänestä

  • kakkendaali kirjoitti:

    Testaa tuolla
    http://pastebin.com/PtCi3yZb

    Testattu windowzessa python 2.7 sekä 3.3. Pitäisi periaatteessa toimia linuxissa mutta en voi juuri nyt testata.

    Aja ensin manuaalisesti ja katso tekeekö mitä pitää. Sitten laita cron jobi suorittamaan se automaagisesti

    Pikku puki löytui heti! Muuta kohta "if value:" muotoon "if value is not None:"

    Muuten se jättää mahdolliset 0 arvot viemättä

    Äänestä

  • linux csv kirjoitti:

    Loppuun pitäisi lisätä tavaraa.
    CSVtä olen aikonut käyttää koska se on minun tietääkseni yhteensopiva excelin kanssa.

    Excelin CSV -toteutus on epästandardi.

    "CSV tulee sanoista "Comma Separated Values" eli pilkulla erotetut arvot"

    juuri näin !

    Mutta Excelillehän tuo EI kelpaa.

    Sensijaan, jotta Excel ymmärtäisi tiedon oikein, niin pitää olla

    CSV:n sijasta SCSV, eli "SemiColon Separated Values", tiedostonimeksi siis vaikkapa:
    excelimport.csv

    Eli Excel ymmärtää vain, kun tietorivi on tällainen:

    arvo1;arvo2;arvo3;"merkkijonon sisältävä arvo, jossa voi olla myös pilkku, välilyöntejä jne";arvo5

    Äänestä

man sleep
man bash

Äänestä

Kommentoi aloitusta


linux csv kirjoitti:

Pitäisi kerran minuutissa saada luettua tiedostosta rivi, ja tallentaa tätä tietoa csv tietoihin niin että halutessaan saa helposti tarkasteltua tuloksia esim. Excelillä.

Miten onnistuu?

Tiedostosta luettava tieto on muodossa
t=
Arvo pitää jakaa tonnilla (1000) ennen käyttöä.

Luin jostain crontab anagron jutuista mutta menevät yli hilseen.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu