首页 > 解决方案 > 在python中打开一个只知道计算机上任何地方的扩展名的随机文件

问题描述

我想将我的 python 程序转换为 exe 文件,但是我希望能够单击具有特定扩展名的文件,例如 .ftf,然后能够在我的 python 程序中打开文件并读取内容。我也在一台无法使用 cmd 但可​​以使用一些 os 模块命令的 Windows 10 计算机上所以我做了一些研究,但我仍然不清楚如何获取我想要运行的扩展文件的文件名和路径使用 python 文件,但我正在将 python 文件转换为 exe,所以我如何将扩展文件的文件名和路径打开,然后将其内容作为 exe 文件读取。所以我尝试将我的 porgram 转换为 EXE 并使用我的程序的 exe 版本运行扩展文件,我收到了这个错误:

Traceback (most recent call last):
  File "D:\Users\Dextron\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cx_Freeze\initscripts\__startup__.py"
, line 14, in run
    module.run()
  File "D:\Users\Dextron\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cx_Freeze\initscripts\Console.py", li
ne 26, in run
    exec(code, m.__dict__)
  File "BashFile.py", line 18, in <module>
  File "D:\Users\Dextron\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2: character maps to <undefined>

我已经使用 cx_Freeze 来转换我的程序。这是我的设置文件

from cx_Freeze import setup, Executable
import os

base = None

executables = [Executable("BashFile.py", base=base)]
packages = ["os", "colorama", "datetime", "time", "socket", "random", "sys", "ctypes"]
options = {
    'build_exe': {
        'packages':packages,
    },
}

os.environ['TCL_LIBRARY'] = r'D:\Users\26099\AppData\Local\Programs\Python\Python36-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'D:\Users\26099\AppData\Local\Programs\Python\Python36-32\tcl\tk8.6'

setup(
    name = "BashFile",
    options = options,
    version = "1.0",
    description = "A Simple Python program made to replace CMD",
    executables = executables
)

标签: python-3.xfile-association

解决方案


推荐阅读