On 4/14/21, Quentin Bock <qberz2...@gmail.com> wrote: > > this is the only part of the code that causes the error > > file = open('Egils Saga 1-15.txt', "r")
Here's an app_abspath() function to resolve a filename against the directory of the main script: import os import sys def get_main_file(): if hasattr(sys, 'frozen'): return sys.executable main = getattr(sys.modules.get('__main__'), '__file__', '') return os.path.abspath(main) if main else '' def get_main_dir(): return os.path.dirname(get_main_file()) or os.getcwd() def app_abspath(filename): return os.path.join(get_main_dir(), filename) file = open(app_abspath('Egils Saga 1-15.txt'), 'r') In the frozen script case, sys.executable is the main 'script'. For a "-c" command, there is no main file, so it uses the current working directory. Using the variable name "file" is fine so long as compatibility with Python 2 isn't required. In Python 3, "file" is not a reserved keyword and not the name of a builtin function or type. -- https://mail.python.org/mailman/listinfo/python-list