diff --git a/fuel/utils.py b/fuel/utils.py
index <HASH>..<HASH> 100644
--- a/fuel/utils.py
+++ b/fuel/utils.py
@@ -1,7 +1,10 @@
 import collections
+import os
 
 import six
 
+from fuel import config
+
 
 # See http://python3porting.com/differences.html#buffer
 if six.PY3:
@@ -10,6 +13,32 @@ else:
     buffer_ = buffer  # noqa
 
 
+def find_in_data_path(filename):
+    """Searches for a file within Fuel's data path.
+
+    This function loops over all paths defined in Fuel's data path and
+    returns the first path in which the file is found.
+
+    Returns
+    -------
+    file_path : str
+        Path to the first file matching `filename` found in Fuel's
+        data path.
+
+    Raises
+    ------
+    IOError
+        If the file doesn't appear in Fuel's data path.
+
+    """
+    for path in config.data_path.split(os.path.pathsep):
+        path = os.path.expanduser(os.path.expandvars(path))
+        file_path = os.path.join(path, filename)
+        if os.path.isfile(file_path):
+            return file_path
+    raise IOError("{} not found in Fuel's data path".format(filename))
+
+
 def lazy_property_factory(lazy_property):
     """Create properties that perform lazy loading of attributes."""
     def lazy_property_getter(self):
Make fuel.config.data_path accept multiple directories