Use this tag for question regarding "data paths" and "file paths" in blender.

A link to the blender python API about data paths.

Regarding File Paths and Blender

...

Regarding File Paths and Python

Specifically the topic of how to get a valid file path using Python is worth stating explicitly. Python's os module is capable of joining file paths and extracting directory names or file names:

filename = 'some_file_name.extention'

# known as "POSIX" form (on linux or osx):
directory = '/home/username/Desktop'

# python on windows handles paths in two ways.
directory = r'c:\some\directory'  # the r is important
directory = 'c:/some/directory'  # (alternative)

# this will automatically join directories and a filename to
# produce a full file path
fullpath = os.path.join(directory, filename)

The current file's location is obtained using __file__, and os.path.dirname will return the full directory minus the filename

import os
current_file_path = __file__
current_file_dir = os.path.dirname(__file__)

to access a file in the same directory as this python file you do

other_file_path = os.path.join(current_file_dir, "other_file.ext")
with open(other_file_path) as f:
   ...

if there's a directory on the same path as the main python file you can get that by doing

other_file_path = os.path.join(current_file_dir, "directory", "other_file.ext")
with open(other_file_path) as f:
   ...