Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > cz.comp.lang.python > #3379
| From | zu1234 <zu1234@seznam.cz> |
|---|---|
| Subject | Re: [python] vytváření souboru |
| Newsgroups | cz.comp.lang.python |
| Message-ID | <mailman.41.1569311362.5720.python@py.cz> (permalink) |
| References | (2 earlier) <62ca6b0a-ad53-0b41-da46-04c192b51813@seznam.cz> <CAK9Q5BTLHiRrh1zXMMXW4KKHxLnN_WR1P9DzFh_B2FdWKB5gBg@mail.gmail.com> <91e6e1de-783c-204a-e623-142dfb2174d8@seznam.cz> <d34b5ea8-8b38-f92e-4d7d-73a3bb5a8bfd@atlas.cz> <d9cb4358-5461-0540-4a38-a76952ee0f8e@seznam.cz> |
| Organization | usenet-news.net |
| Date | 2019-09-24 09:49 +0200 |
Myslím že to není můj případ: Soubor byl otevřen jednoduše, tedy předpokládám buffrovaně: with file(FFN_OUT, 'wb') as FI: Soubor nebyl tlačen po síti, byl umístěn lokálně na C: . Děkuji za zájem. Z vašich reakcí vyplývá že jsem asi neudělal žádnou primitivní chybu, jen jsem prostě šlápl mimo dálnici. Dne 24.9.2019 v 8:13 mtip napsal(a): > A neukládal si to po netu? > > On x86 (32-bit) or IA64 (64-bit) systems, the maximum buffer size is just under 64MB. For X64 systems, the maximum buffer size is just under 32MB. > The maximum unbuffered read and write size limits are imposed by the design of the IO manager inside the Windows executive. > When an application reads or writes files that are opened with FILE_FLAG_NO_BUFFERING, > the IO Manager locks the application's buffer into physical RAM and then maps the virtual addresses into physical addresses > to pass to the disk device by making a memory descriptor list (MDL). > The buffer size limitation comes from the maximum size MDL that the IO Manager will create. > The reason for the difference between platforms is the way the maximum buffer size is calculated from the memory page size and pointer size. > The IO Manager uses the following formula to compute the maximum size MDL: > > ((65535 - sizeof(MDL)) / sizeof(ULONG_PTR)) * PAGE_SIZE > > This formula has the following results: > > Processor Page Size Pointer Size MDL calculation > ======== ======== ========= ============= > > x86 (32-bit) 4096 4 bytes ((65535 - 28) / 4) * 4096 = 67076096 bytes (63.97 MB) > > IA64 8096 8 bytes ((65535 - 48) / 8) * 8192 = 67051520 bytes (63.95 MB) > > X64 4096 8 bytes ((65535 - 48) / 8) * 4096 = 33525760 bytes (32MB - 28K) > > This limitation occurs when the file is opened with FILE_FLAG_NO_BUFFERING. > > Dne 23.09.2019 v 16:43 zu1234 napsal(a): >> W10 prof 32 bit >> Filesystém NTFS >> Python 2.7.15 >> Opakuji: pokud soubor zapisuju po částech, tak bez problému. >> Znovu jsem to zkoušel zapsat vcelku: neprošlo cca 100MB. >> >> Dne 23.9.2019 v 16:14 Petr Messner napsal(a): >>> Na jakém systému? Linux? >>> >>> Nezapisoval jsi soubor větší než 4 GB na FAT32? >>> >>> Nezapisoval jsi do souboru otevřeném jen pro čtení? >>> >>> Nejsi na 32bit systému, nebo nemáš spuštěný 32bit Python? >>> >>> Jen tak na zkoušku jsem si v Pythonu 3 zkusil jedním write zapsat 20GB soubor, bez problému. >>> >>> PM >>> >>> po 23. 9. 2019 v 15:59 odesílatel zu1234 <zu1234@seznam.cz <mailto:zu1234@seznam.cz>> napsal: >>> >>> IOError, 22, Invalid argument >>> >>> >>> >>> Dne 23.9.2019 v 13:10 Petr Messner napsal(a): >>>> A jaký byl text toho IOError? To, že to nic neříká tobě, neznamená, že to nevysvětluje tu chybu :) >>>> >>>> file.write je high level metoda, která volá OS syscall write tolikrát, kolik je potřeba, takže teoreticky jsi omezený jen velikostí RAM. >>>> >>>> PM >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> po 23. 9. 2019 v 11:43 odesílatel zu1234 <zu1234@seznam.cz <mailto:zu1234@seznam.cz>> napsal: >>>> >>>> Při vytváření (binárního) souboru pomocí file.write() jsem se utkal s >>>> nic neříkající chybou io error ... . >>>> Nakonec jsem zjistit že větší soubor je nutno zapisovat po částech a ne >>>> naráz. >>>> Nenašel jsem jak zjistit jak největší může ta část být. >>>> Program funguje, ale chtěl bych vědět víc. >>>> Orientuje se někdo lépe? >>>> Díky ZU >>>> >>>> >>>> _______________________________________________ >>>> Python mailing list >>>> python@py.cz <mailto:python@py.cz> >>>> http://www.py.cz/mailman/listinfo/python >>>> >>>> Visit: http://www.py.cz >>>> >>>> >>>> _______________________________________________ >>>> Python mailing list >>>> python@py.cz <mailto:python@py.cz> >>>> http://www.py.cz/mailman/listinfo/python >>>> >>>> Visit: http://www.py.cz >>> >> >> _______________________________________________ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz
Back to cz.comp.lang.python | Previous | Next | Find similar
Re: [python] vytváření souboru zu1234 <zu1234@seznam.cz> - 2019-09-24 09:49 +0200
csiph-web