В 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 настаивает на записи до конца?