Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 5, 2015 06:43:35

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Режим доступа к файлу

py.user.next
Чего платформозависимо?
https://docs.python.org/2/library/functions.html#open
…and ‘a’ for appending (which on some Unix systems means that all writes append to the end of the file regardless of the current seek position)
Any questions?

Офлайн

#2 Ноя. 5, 2015 08:02:22

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Режим доступа к файлу

Shaman
https://docs.python.org/2/library/functions.html#open
Shaman
which on some Unix systems
Это далеко не some, а практически на всех линуксах происходит.
Можешь проверить:
#!/usr/bin/env python3
 
with open('file.txt', 'a+b') as fout:
    fout.write(b'a1')
    fout.seek(0)
    fout.write(b'a2')
    fout.seek(0)
    fout.write(b'a3')
попробуй найти систему, где это запишется в начало.



Отредактировано py.user.next (Ноя. 5, 2015 08:03:54)

Офлайн

#3 Ноя. 5, 2015 08:35:29

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Режим доступа к файлу

py.user.next
Там же про UNIX написано, а под BSD семейство , Solaris или тп тоже будет работать также? а Другие UNIX подобные системы? в общем есть шанс, что найдется и/или было подобное.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Ноя. 5, 2015 13:05:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Режим доступа к файлу

У меня под FreeBSD нет питона (надо ставить всё заново), но думаю, там то же самое с append'ом происходит.

Линуксовый системный вызов:
man 2 open

       O_APPEND
The file is opened in append mode. Before each write(2), the
file offset is positioned at the end of the file, as if with
lseek(2). O_APPEND may lead to corrupted files on NFS file sys‐
tems if more than one process appends data to a file at once.
This is because NFS does not support appending to a file, so the
client kernel has to simulate it, which can't be done without a
race condition.
...

CONFORMING TO
SVr4, 4.3BSD, POSIX.1-2001.



Отредактировано py.user.next (Ноя. 5, 2015 13:08:45)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version