Pyinstaller如何识别文件扩展名?

时间:2020-10-29 15:49:33

标签: python json pycharm pyinstaller file-extension

我在表达这个问题时遇到了麻烦,但是本质上我在使用Pyinstaller创建我的PyCharm项目的可分发.exe。在PyCharm中,我一直在运行代码时读写外部JSON文件。我从PyCharm内部手动创建这些JSON文件,然后告诉PyCharm它是什么类型的文件(JSON),而不是使用脚本本身的操作,例如:

with open('filename.json', 'w') as newfile:
   json.dump(contents, newfile, indent=2)

因此,我不必在文件名中包含实际的'.json'文件扩展名,因为PyCharm已经知道它是哪种文件类型。但是,我将分发此项目,因此我编写了代码,如果尚不存在,它们将自动为用户创建这些外部JSON文件。使用此代码:

def check_files():
    files_to_check = ['filename1', 'filename2', 'filename3', 'filename4', 'filename5']
    for file in files_to_check:
        try:
            with open(file, 'r') as dummy_var:
                pass
        except FileNotFoundError:
            with open(file, 'w') as create_new_file:
                json.dump([], create_new_file, indent=2)

我想知道Pyinstaller是否会将PyCharm对我手动创建的JSON文件的了解带到导出的.exe,还是我每次程序使用以上功能创建新文件时都必须指定'.json'扩展名。

换句话说-.exe文件会在没有我指定的情况下将'filename1'识别为JSON类型的文件,因为它是PyCharm中的JSON类型文件,还是我需要将其明确命名为'filename1.json' ?

显而易见的答案是,在每个文件名中都简单包含'.json'是安全的,但是如果这些文件已被识别为JSON文件,则在名称中包含'.json'扩展名将导致文件名为' filename1.json.json”,这会导致我的程序出错。

0 个答案:

没有答案