Tryby dostępu do pliku.

0

Dotarłem do takiego tematu i nie rozumiem czemu "tryby z plusem"(rb+, wb+, ab+) działają tak samo jak te zwykłe.

Konkretnie:

  1. rb+ nie daje możliwości zapisu \ użycie pickle.dump() wygeneruje błąd
  2. wb+ nie daje możliwości odczytu \ pickle.load wygeneruje błąd
  3. ab+ nie daje możliwości odczytu \ jw.

Jak spróbuję czegoś takiego to wywala błąd: EOFError: Ran out of input

"Tryby z plusem" dla plików tekstowych mają tak samo, tylko, nie generują błędu, po prostu nic nie robią. Przykład: w+ nic nie odczyta, metody odczytu nic nie robią.

0

"rw+"

    • stwórz plik jeżeli go nie ma.
0

Nie da się tak chyba. Albo "r", albo "w"
Jak wpiszę "rw+" to mam: ValueError: must have exactly one of create/read/write/append mode

Co do plusa to doumentacja mówi coś innego: open a disk file for updating (reading and writing)

Edytowałem pierwszy post, może będzie jaśniej.

0

Która wersja Pythona? Zgodnie z dokumentacją, takich trybów jak ty podajesz, nie ma (są tryby r, r+, w, a, rb, r+b, wb, ab).

0

3.5, masz rację, nie ma takich. Korzystam z książki pisanej pod Pythona 3.1 i tam były takie tryby. Czyli nie da się uzyskać możliwości zapisu i odczytu jednocześnie? Mam jeszcze pytanie co do r+, r+b, w+b.
Z dokumentacji: For binary read-write access, the mode 'w+b' opens and truncates the file to 0 bytes. 'r+b' opens the file without truncation.
O co chodzi z tym obcinaniem?

Edit: Już wiem, wyczyści mi plik po otwarciu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1