Chế độ là ab+
được ngụ ý và 'a'ppend và (' w'rite '+' 'r'ead) là không cần thiết. Kể từ khi CPython (ví dụ thường xuyên python) file
được dựa trên C stdio FILE
loại, đây là những dòng có liên quan từ fopen (3) xem man page:
w + mở cho đọc và viết. Tệp được tạo nếu nó không tồn tại, nếu không nó sẽ bị cắt ngắn. Luồng được đặt ở số bắt đầu của tệp.
a + Mở để đọc và phụ thêm (viết ở cuối tệp). Tệp được tạo nếu tệp không tồn tại . Vị trí tệp ban đầu để đọc nằm ở đầu tệp , nhưng đầu ra luôn là được thêm vào cuối tệp.
Với dấu "b" được bật để làm cho DOS vui vẻ. Có lẽ bạn muốn làm điều gì đó như thế này:
>>> f = open('junk', 'ab+')
>>> f
<open file 'junk', mode 'ab+' at 0xb77e6288>
>>> f.write('hello\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.write('there\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.readline()
'there\n'
Hoạt động. Cũng cảm ơn vì đã chỉ ra os.SEEK_SET trong ví dụ của bạn. Tôi nghĩ rằng tôi đã cố gắng mở tập tin với một + trước nhưng không thể đọc bất cứ điều gì ra khỏi nó. Đã không vượt qua tâm trí của tôi dòng được đặt ở phần cuối của tập tin ... –
Hãy nhớ rằng bạn * phải * * luôn luôn * tìm kiếm giữa đọc và viết, hoặc viết và đọc. Quên để làm như vậy thường sẽ làm việc trên hầu hết các hệ thống, nhưng không phải (ví dụ) trên Windows. –