Groups | Search | Server Info | Login | Register


Groups > cz.comp.lang.python > #3439

Re: [python] Funkcia seek()

Path csiph.com!weretis.net!feeder8.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx02.ams4.POSTED!not-for-mail
Received-SPF none (Address does not pass the Sender Policy Framework) SPF=HELO; sender=mail-wm1-f46.google.com; remoteip=::ffff:209.85.128.46; remotehost=; helo=mail-wm1-f46.google.com; receiver=hugo.zagamma.cz;
Received-SPF pass (Address passes the Sender Policy Framework) SPF=MAILFROM; sender=encukou@gmail.com; remoteip=::ffff:209.85.128.46; remotehost=; helo=mail-wm1-f46.google.com; receiver=hugo.zagamma.cz;
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:cc:in-reply-to:content-transfer-encoding; bh=nsO4Z+XxKAN561i/B2I511bj91zm1Rt0UU0YpvXonGI=; b=Atd/KKelB88W6nM88eBG3/H4uiDCc5E7qgQqhjWvTbscquzo7CbmfId+ydAwjNbBMI 5ryK/sph2kOKc1kkRcIasglXapfeoL8jBeV8EIaucOsyW+dJIJ1cN/3sw5FHjlzfqsZ1 WLd1XG133isD2w+5Ftoo4lIIgV2YdI+00DOaS4mVpUFdJLASEqsOw/Qe0Ye29EUcVneJ d0T0hf5tGbh7Uf1uFJ6iLog8VlY3Dyd5iNgfWr5EnEkqJKISRnhbATlhYuvgp8o7ExUQ T/vyf/41Mf/gjrJchz2LQ6tYAKC7r7VhDOwUiQanbnCZpLyHwrL8dqQQLxg80RS/FT4W JPuw==
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:cc:in-reply-to :content-transfer-encoding; bh=nsO4Z+XxKAN561i/B2I511bj91zm1Rt0UU0YpvXonGI=; b=G3i++Ogl/tCwrIVHyIQIDygcLEureneMIELKDsyse/CGpjjMPhD5skS0IPlJzCo+ET QVUgtX0Sa8FF5CYy6pfDw3NExMbRcT2vCTTeF49pRPtktJ7GntTTePVNua58DBpoKX7V W1REc/ErvtuTcAVdqvk9qAlrGZVY2phj+3HaZs4gu9ZQuckZFgak8pFguFa6rixkrcUG J7pJV0qrLjLZlT8PLTg9GGvGl8WmryWwaRIQtjqIxYhxAg2HjLVC1eDN4qhAHnerKA8C hEQ2QeyL1KP7RN7mCYFi5HMadmVxiTTdoCCePcFP5BHmT0+9M41+WL6RE+0nFBhqEHdC AkIA==
X-Gm-Message-State AOAM533l6zyKOyYfvR++yBW0ssghCfKOM3O9C94ruR7Ty4DYBQjzXCKV Ca3S0QJ4jGC1Qa/LqrxTGPM=
X-Google-Smtp-Source ABdhPJyz9FZ0xL6FOf7mm4VHDyIjRtCim1v0qVYgBasmMx6oEK56GKcfL5TcLwFpIJM0umIntulHCQ==
X-Received by 2002:a05:600c:1c20:: with SMTP id j32mr13893845wms.1.1638951770077; Wed, 08 Dec 2021 00:22:50 -0800 (PST)
Old-Return-Path <encukou@gmail.com>
MIME-Version 1.0
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0
Content-Language en-US
From Petr Viktorin <encukou@gmail.com>
In-Reply-To <2d9688db-6339-6b54-5e6f-d65567b834d0@gmail.com>
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
Subject Re: [python] Funkcia seek()
X-BeenThere python@py.cz
X-Mailman-Version 2.1.34
Precedence list
List-Id Konference PyCZ <python.py.cz>
List-Unsubscribe <http://www.py.cz/mailman/options/python>, <mailto:python-request@py.cz?subject=unsubscribe>
List-Archive <http://www.py.cz/pipermail/python/>
List-Post <mailto:python@py.cz>
List-Help <mailto:python-request@py.cz?subject=help>
List-Subscribe <http://www.py.cz/mailman/listinfo/python>, <mailto:python-request@py.cz?subject=subscribe>
Newsgroups cz.comp.lang.python
Message-ID <mailman.17.1638951773.25463.python@py.cz> (permalink)
X-Mailman-Original-Message-ID <6c55f080-5ee2-526c-00e1-f424277c1f11@gmail.com>
X-Mailman-Original-References <2d9688db-6339-6b54-5e6f-d65567b834d0@gmail.com>
References <2d9688db-6339-6b54-5e6f-d65567b834d0@gmail.com> <6c55f080-5ee2-526c-00e1-f424277c1f11@gmail.com>
Lines 44
X-Complaints-To abuse@usenet-news.net
NNTP-Posting-Date Wed, 08 Dec 2021 08:22:54 UTC
Organization usenet-news.net
Date Wed, 8 Dec 2021 09:22:48 +0100
X-Received-Bytes 5255
Xref csiph.com cz.comp.lang.python:3439

Show key headers only | View raw


On 07. 12. 21 21:33, Dusan Gazo wrote:
> Zdravim.
> 
> Som začiatočník a skúšam možnosti jazyka.
> 
> Prečo pri otvorenom súbore v textovom móde, funkcia seek(x, y) je 
> funkčná len ak je y =  0 a x >= 0?  Pri Y = 1 alebo 2 môže byt x len 0.
> 
> Je na to nejaký dôvod?  Ak otvorim súbor binárne tak funkcia pracuje 
> tak, ako si predstavujem, t.j. Y = 0 -> x môže byť >= 0 ,
> 
> Y = 1 ->  x  môže byť < >= 0 , Y=2  x môže byť <=0.
> 

Do soouboru se neukladaji znaky, ale bajty. Text se da prevest 
(zakodovat) na bajty, bajty se daji dekodovat zpatky, ale problem je ze 
jeden znak muze byt zakodovany ruznym poctem bajtu:

 >>> len('a'.encode('utf-8'))
1
 >>> len('ů'.encode('utf-8'))
2
 >>> len('←'.encode('utf-8'))
3
 >>> len('😸'.encode('utf-8'))
4

Python nemuze operacnimu systemu rict "skoc o 400 znaku dal", jen napr. 
"skoc o 400 bajtu dal". Ale na to, aby spocital kolik bajtu tyhle znaky 
zaberou by je musel vechny nacist a zpracovat.

Mimochodem, pro Y=0 (whence=SEEK_SET) nemuze byt X jakekoli cislo, ale 
jen cislo ktere jsi predtim dostal pomoci metody tell(). S jinym cislem 
bys mohl "pristat" v pulce znaku, a kdo vi co by se delo pak...

Viz dokumentace: 
https://docs.python.org/3/library/io.html#io.TextIOBase.seek


Jestli chces skakat dopredu, muzes pouzit read() a dany pocet znaku 
nacist a zahodit. (Pozor, cti dokumentaci: read() muze vatit kratsi 
retezec nez o jaky si reknes.)
Jestli chces skakat na pozici kde jsi uz byl, zapamatuj si ji pomoci tell().
A nebo otevri soubor v binarnim modu a dekodovani na text res sam.

Back to cz.comp.lang.python | Previous | Next | Find similar


Thread

Re: [python] Funkcia seek() Petr Viktorin <encukou@gmail.com> - 2021-12-08 09:22 +0100

csiph-web