Python中如何将option.plist文件数据永久存入变量无需重复读取
实现方案
第一步:一次性转换plist文件为Python内置变量
你只需要运行一次如下转换脚本,就可以把option.plist的全部二进制数据生成为合法的Python字节变量,所有换行、特殊字符会自动转义,无需手动处理:
# 转换脚本,仅需执行一次 with open("option.plist", "rb") as f: raw_plist = f.read() # 生成存储标准数据的配置文件 with open("plist_const.py", "w", encoding="utf-8") as f: f.write(f"STANDARD_OPTION_DATA = {repr(raw_plist)}\n")
运行后会得到plist_const.py文件,里面已经存储了和原option.plist完全一致的二进制数据。
第二步:改造原有比对代码
修改你的主程序,直接导入配置文件里的变量即可,无需再读取原option.plist文件:
from plist_const import STANDARD_OPTION_DATA import sys arg = input("Drag & drop your file here: ") with open(arg,'rb') as f1: user_data = f1.read() if STANDARD_OPTION_DATA == user_data: print("Valid ticket") else: print("Invalid ticket") sys.exit(-1)
注意:原代码顶层直接使用
return是非法语法,这里替换为sys.exit(-1)实现相同的异常退出效果。
补充说明
- 如果后续option.plist有更新,重新运行一次第一步的转换脚本即可同步变量内容
- 该方法适配任意大小、任意内容的plist文件,不会因为换行、特殊符号出现匹配错误
- 打包分发程序时只需包含主程序和
plist_const.py,无需携带原option.plist文件
内容的提问来源于stack exchange,提问作者klg
相关产品推荐
相关产品推荐

