Python提示传入多个参数但实际仅传一个的问题排查
问题分析与解决
核心问题是脚本里的参数判断逻辑写反了:
你当前的代码判断if len(sys.argv) > 1:就打印用法提示并退出,但实际传入字体文件时,sys.argv的长度是2(索引0是脚本名,索引1是字体文件路径),刚好满足这个条件,所以触发了错误提示。
正确的逻辑应该是**当没有传入足够参数(即len(sys.argv) < 2)**时,才提示用法并退出。
修正后的脚本代码:
import os.path import sys from fontTools import ttLib from fontmeta import FontMeta if len(sys.argv) < 2: print("Usage: Only one argument required: [FONT]") exit(1) fontfile = sys.argv[1] meta_instance = FontMeta(fontfile) metadata = meta_instance.get_full_data() print(metadata)
关于Python 3.11.4的疑问:这个问题和Python版本无关,3.11.4没有改变sys.argv的行为,应该是你修改脚本时不小心把判断条件写反了,导致原本正常的逻辑出错。
内容的提问来源于stack exchange,提问作者fmotion1
相关产品推荐
相关产品推荐

