Ну тебе тут и насоветовали... Читай что такое относительный и абсолютный пути.
C:\папка\user_file - это абсолютный путь.
\папка\user_file - это относительный путь от корня текущего диска.
папка\user_file - это относительный путь от текущей директории.
Текущая директория (равно как и диск) может быть разной при запуске скрипта, может быть изменена в ходе работы скрипта, и не обязательно совпадает с директорией скрипта.
Если тебя это устраивает, например, если ты пишешь программу для командной строки, которая принимает путь как параметр - то можешь использовать относительный путь.
Если же ты хочешь обратиться к какому-то файлу с данными в каталоге скрипта - лучше сконструировать абсолютный путь. Не указать его явно (тогда придётся менять при перемещении скрипта в другую папку), а сконструировать. Например, так:
import pathlib # стандартный модуль питона. Очень советую его освоить!
import sys
# путь к папке скрипта, например, C:\myscript
script_dir = pathlib.Path(sys.argv[0]).parent
# путь к файлу собирается из частей вот так
user_file = script_dir / "some_folder" / "user_file" # C:\myscript\some_folder\user_file
# обрати внимание, мы не паримся по поводу того, что
# под виндой разделитель каталогов \, а под линуксом /
# это уже забота pathlib
with user_file.open('w+') as f:
pass # делаешь что тебе нужно с файлом
# через функцию open() тоже сработает, метод open() просто для удобства
with open(user_file, 'w+') as f:
pass # делаешь что тебе нужно с файлом
Так ты гарантируешь, что будешь обращаться к файлу в каталоге скрипта, независимо от расположения скрипта и от текущей рабочей директории.