Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [python] skrypt zliczający wartości z pliku, prosty skrypt
tofik1778983
post
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 1
Dołączył: 22.11.2007
Skąd: lbn

Ostrzeżenie: (0%)
-----


Witam.

Mam pliczek gdzie są wartości w postaci:
  1. 2,44
  2. 6,78
  3. 3,90
  4. ...

czyli jakiś float w każdej linii.
Potrzebuję jak najprostszy kod który otworzy ten plik i zliczy wszystkie wartości i poda wynik.

Zrobiłem sobie tak:
  1. plik=open('plik.txt', 'r')
  2. for x in plik:
  3. wynik = x +wynik;
  4.  

wywala mi: can't concatenate 'str' and 'int' object

no to wiem o co chodzi ale nie wiem jak zamienic stringa na inta poprawnie.. próbowałem parę sposobów ale ciągle jakiś bład.

Nie znam w ogóle pytona dlatego piszę, dla was pewnie banał a ja już mam dość szukania co raz to nowych błędów które mi wypluwa.
Kod potrzebuje do większego skryptu dla telefonu pod androidem.

Ten post edytował tofik1778983 25.06.2012, 10:00:13
Go to the top of the page
+Quote Post
emkej
post
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 5
Dołączył: 18.06.2012

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $file = file('./file');
  4.  
  5. $array = array();
  6.  
  7. foreach($file as $v) {
  8. $array[] = (float) $v;
  9. }
  10.  
  11. echo array_sum($array);
  12. ?>
Go to the top of the page
+Quote Post
tofik1778983
post
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 1
Dołączył: 22.11.2007
Skąd: lbn

Ostrzeżenie: (0%)
-----


W tytule pisze jak wół ze w pytonie ten skrypt ;]
W php czaje. Dzięki.

Ten post edytował tofik1778983 25.06.2012, 10:23:50
Go to the top of the page
+Quote Post
d3ut3r
post
Post #4





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

Ostrzeżenie: (0%)
-----


dla pliku

Kod
10.2
10.4
10.1


kod:

  1. from decimal import *
  2. plik=open('file.txt', 'r')
  3. wynik=0
  4. for x in plik:
  5. wynik = Decimal(x) + wynik;
  6.  
  7. print wynik


powinien działać
Go to the top of the page
+Quote Post
emkej
post
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 5
Dołączył: 18.06.2012

Ostrzeżenie: (0%)
-----


Cytat(tofik1778983 @ 25.06.2012, 11:23:03 ) *
W tytule pisze jak wół ze w pytonie ten skrypt ;]
W php czaje. Dzięki.


ops, sorry nie zwrocilem uwagi.

A Twoj blad mowi, ze nie mozna dopsowac stringa do inta, czyli musisz zrobic rzutowanie.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




na pythonie się nie znam ale...

Kod
#!/usr/bin/env python

sum = float(0)

fhandle = open('dane.txt', 'r')

for line in fhandle:
    sum = sum + float(line.replace(',', '.'))

print sum
Go to the top of the page
+Quote Post
droslaw
post
Post #7





Grupa: Zarejestrowani
Postów: 98
Pomógł: 33
Dołączył: 10.05.2011
Skąd: Krak

Ostrzeżenie: (0%)
-----


Kod w wyrażeniem listowym:
Kod
#!/usr/bin/env python
value = sum([float(line.replace(',','.')) for line in file('plik.txt').readlines()
    if line.replace(',','',1).strip().isdigit()])
print value

Sprawdza też czy linia jest poprawnym floatem, żeby skrypt się nie wysypał jeśli w pliku będzie np. pusta linia.
Go to the top of the page
+Quote Post
tofik1778983
post
Post #8





Grupa: Zarejestrowani
Postów: 144
Pomógł: 1
Dołączył: 22.11.2007
Skąd: lbn

Ostrzeżenie: (0%)
-----


Dzięki za pomoc. W sumie potem doszedłem co i jak. przekształciłem sobie stringi na floaty potem dalej w skrypcie odwrotnie i zaczęło działać.
Jeszcze gdzieś po drodze wdarła mi się niechciana spacja co także powodowało błąd. Ale dało radę.
Pozdr.

Ten post edytował tofik1778983 29.06.2012, 08:41:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 10:58