Это со мной работало:
(-?[0-9]+(\.[0-9]+)?)
Группа 1 - это ваш номер с плавающей точкой, а группа 2 - только фракция.
Если причина, которую Вы проверяете, так, можно сделать что-то как 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
В отличие от этого isfile()
, exists()
возвратится True
для каталогов.
Так в зависимости от того, если Вы хотите только простые файлы или также каталоги, Вы будете использовать isfile()
или exists()
. Вот простой вывод REPL.
>>> print os.path.isfile("/etc/password.txt")
True
>>> print os.path.isfile("/etc")
False
>>> print os.path.isfile("/does/not/exist")
False
>>> print os.path.exists("/etc/password.txt")
True
>>> print os.path.exists("/etc")
True
>>> print os.path.exists("/does/not/exist")
False
Кроме того, os.access()
:
if os.access("myfile", os.R_OK):
with open("myfile") as fp:
return fp.read()
Являющийся R_OK
, W_OK
, и X_OK
флаги для тестирования на полномочия ( документ ).
Вы имеете os.path.exists
функция:
import os.path
os.path.exists(file_path)
Это возвращается True
и для файлов и для каталогов, но можно вместо этого использовать
os.path.isfile(file_path)
, чтобы протестировать, если это - файл конкретно. Это следует за символьными ссылками.
import os
os.path.exists(path) # Returns whether the path (directory or file) exists or not
os.path.isfile(path) # Returns whether the file exists or not
Prefer the try statement. It's considered better style and avoids race conditions.
Don't take my word for it. There's plenty of support for this theory. Here's a couple: