Если причина, которую Вы проверяете, так, можно сделать что-то как if file_exists: open_it()
, более безопасно использовать try
вокруг попытки открыть его. Проверка и затем открытие рискуют файлом, удаляемым или перемещенным или что-то между тем, когда Вы проверяете и когда Вы пытаетесь открыть его.
, Если Вы не планируете открыть файл сразу, можно использовать os.path.isfile
Возврат
True
, если путь является существующим регулярным файлом. Это переходит по символьным ссылкам, таким образом, оба образовывание остров () и isfile () может быть верным для того же пути.
import os.path
os.path.isfile(fname)
, если необходимо быть уверены, что это - файл.
Запуск с Python 3.4, pathlib
модуль предложения объектно-ориентированный подход (бэкпортированный к [1 110] в Python 2.7):
from pathlib import Path
my_file = Path("/path/to/file")
if my_file.is_file():
# file exists
Для проверки каталога сделайте:
if my_file.is_dir():
# directory exists
, Чтобы проверить, существует ли Path
объект независимо от того, является ли им файл или каталог, используйте exists()
:
if my_file.exists():
# path exists
можно также использовать resolve(strict=True)
в try
блок:
try:
my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
# doesn't exist
else:
# exists
T не может быть нулевым, потому что T может быть тип значения. Попробуйте вернуть значение по умолчанию (T) или добавить ограничение класса, чтобы указать, что T может быть только ссылочным типом, например:
public T GetLevelElement<T>(string name) where T : ILevelElement, class
{
[...]
}