Каков наилучший способ открыть файл для чтения / записи, если он существует, а если нет, то создать его и открыть как чтение / запись? Из того, что я прочитал, file = open('myfile.dat', 'rw')
должен делать это, верно?
Это не работает для меня (Python 2.6.2), и мне интересно, если это проблема с версией, или не должен работать так или что.
Суть в том, что мне просто нужно решение проблемы. Мне любопытно по поводу других вещей, но все, что мне нужно, это хороший способ сделать вступительную часть.
Вмещающий каталог был доступен для записи пользователю и группе, а не другим (я в системе Linux ... так что разрешения 775 другими словами), и точная ошибка была:
IOError: нет такого файла или каталога.
python
linux
file-io
file-permissions
trh178
источник
источник
file
существует.Ответы:
Вы должны использовать
open
сw+
режимом:источник
w
обрезает существующий файл. документы: Режимы'r+'
,'w+'
и'a+'
открыть файл для обновления (заметим , что'w+'
обрезает файл).open('myfile.dat', 'w')
тогда достаточно.Преимущество следующего подхода заключается в том, что файл правильно закрывается в конце блока, даже если на пути возникает исключение. Это эквивалентно
try-finally
, но намного короче.Метод seek () устанавливает текущую позицию файла.
источник
filename
?Хорошей практикой является использование следующего:
источник
Измените «rw» на «w +»
Или используйте «+» для добавления (не стирая существующий контент)
источник
r + означает чтение / запись
источник
Начиная с python 3.4, вы должны использовать,
pathlib
чтобы «трогать» файлы.Это гораздо более элегантное решение, чем предложенные в этой теме.
То же самое с каталогами:
источник
touch
обновляет время последнего изменения при использовании.touch
в командной строке в Linux, поэтому я предполагаю, что это предполагаемое поведение.Мой ответ:
источник
пример:
Надеюсь, это поможет. [FYI использую версию Python 3.6.2]
источник
open('myfile.dat', 'a')
у меня работает, просто отлично.в py3k ваш код повышается
ValueError
:в python-2.6 он поднимается
IOError
.источник
Использование:
Примечание: Файлы должны быть закрыты после того, как вы откроете их, и с менеджером контекста является хорошим способом , чтобы позволить Python заботиться об этом для вас.
источник
Что вы хотите сделать с файлом? Только пишешь в него или и читаешь и пишешь?
'w'
,'a'
разрешит запись и создаст файл, если он не существует.Если вам нужно прочитать из файла, файл должен существовать, прежде чем открыть его. Вы можете проверить его существование перед тем, как открыть его, или использовать попытку / исключение.
источник
Я думаю
r+
, что нетrw
. Я просто начинающий, и это то, что я видел в документации.источник
Поставьте w + для записи файла, обрезать, если он существует, r +, чтобы прочитать файл, создать его, если он не существует, но не записать (и вернуть ноль), или + для создания нового файла или добавления к существующему.
источник
Итак, вы хотите записать данные в файл, но только если он еще не существует?
Эта проблема легко решается с помощью малоизвестного режима x для open () вместо обычного режима w. Например:
Если файл в двоичном режиме, используйте режим xb вместо xt.
источник
Если вы хотите открыть его для чтения и записи, я предполагаю, что вы не хотите обрезать его при открытии и хотите иметь возможность прочитать файл сразу после его открытия. Так что это решение, которое я использую:
источник
может быть это поможет
первый модуль os для импорта в ваш файл py
затем создайте переменную с именем save_file и установите для нее файл, который вы хотите сделать html или txt, в этом случае txt файл
затем определите функцию, которая будет использовать метод файла os.path.is, чтобы проверить, существует ли файл, и если нет, он создаст файл
и, наконец, вызвать функцию
источник
источник