Zdravím, vytvoříme si libovolný soubor cca 100MB a ten pak předáme na stdin
následujícímu skriptu:

    import sys

    data = ""
    while (1):
        buffer = sys.stdin.read(1024)

        if (buffer == ""):
            break

        data += buffer

$ cat soubor |./read_normal.py

Během okamžiku jsou data načtená do paměti. Pokud ovšem do skriptu přidám fci,
kterou vůbec nevyužívám:

    def fce():
        global data

Skript vytíží CPU na maximum a běží mnoho minut. Stejný problém nastává při
použití proměné z instace třídy:

    import sys

    class Read():
        def __init__(self):
            self.data = ""

        def run(self):
            while (1):
                buffer = sys.stdin.read(1024)

                if (buffer == ""):
                    break

                self.data += buffer

    r = Read()
    r.run()

Tuší někdo v čem je problém?

        S pozdravem Jan Fuchs

--
/**************************************************************
*   _    Žádný program není bezchybný, dokonalý ani nejlepší, *
*  °v°   to samé platí i o lidech a nejen o nich.             *
* /(_)\                                      -- Jan Fuchs --  *
*  ^ ^                                                        *
*        http://www.fuky.org   Jabber: [email protected] *
**************************************************************/
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem