В python есть несколько флагов, которые вы можете предоставить при открытии файла для работы. Я немного озадачен поиском комбинации, которая позволяет мне делать случайную запись без усечения. Поведение, которое я ищу, эквивалентно C: создать его, если оно не существует, в противном случае открыть для записи (не обрезать)
open(filename, O_WRONLY|O_CREAT)
Python документ запутан (для меня): "w" сначала обрезает файл, "+" должен означать обновление, но "w+" будет усекать это так или иначе. В любом случае, чтобы достичь этого, не прибегая к низкоуровневому интерфейсу os.open()?
Примечание: "a" или "a+" тоже не работает (пожалуйста, исправьте, если я делаю что-то не так)
cat test.txt
eee
with open("test.txt", "a+") as f:
f.seek(0)
f.write("a")
cat test.txt
eeea
Это значит, что режим append настаивает на записи до конца?