Как удалить файл, если он существует в каталоге с python 2.7, используя os/app
?Как удалить элемент, если он существует?
Я попытался с
os.remove('directory/file.png')
но если элемент не существует, я получил сообщение об ошибке.
Как удалить файл, если он существует в каталоге с python 2.7, используя os/app
?Как удалить элемент, если он существует?
Я попытался с
os.remove('directory/file.png')
но если элемент не существует, я получил сообщение об ошибке.
if os.path.exists(path):
os.remove(path)
Проверьте, если он существует первый:
if os.path.exists(path):
os.remove(path)
Это обескураживает, потому что файл может (например, другим процессом) между проверкой и фактическим удалением, поэтому в условиях гонки исключение будет выбрано и оставлено неотображенным – pqnet
@pqnet. Но это очень теоретическая ситуация, если вы не делаете массивный параллелизм и т. д. –
существует более безопасный шаблон try/except (и это рекомендуемый шаблон, который будет использоваться в python). Я хочу отказаться от этого. Кроме того, тот факт, что OP не знает заранее, если файл есть или нет, предполагает, что он может исчезнуть в любой момент – pqnet
try:
os.remove(path)
except OSError:
pass
Просто поймать ошибку и игнорировать его. (Не обращая внимания на ошибки, это не то, что вы могли бы сделать все ошибки, но здесь, это то, что вы хотите.)
Обратите внимание, что, как предлагает документация на python (http://docs.python.org/2/library/ os.html # os.remove) 'os.remove' может вызвать исключение' OSError', если путь является каталогом (или по какой-либо другой причине невозможно удалить файл), что может быть или не быть тем, что вы хотите. – pqnet
использование исключение:
try:
os.remove("file_name")
except:
return "something went wrong"
вы не можете просто игнорировать эту ошибку? – pqnet
Me да, пользователи нет, я исправил свою проблему с помощью \t, за исключением OSError или NameError: –
'NameError'? Почему вы получите 'NameError'? Это указывает на то, что вы используете несуществующую переменную, которая указывает на ошибку в вашем коде. – user2357112