从.ini文件读取路径触发OSError: [Errno 22] Invalid argument求助
解决ConfigParser读取路径时的OSError无效参数问题
你遇到的问题核心是读取到的路径字符串包含了多余的首尾双引号——从错误信息里的'"CSV_Data\\MAR1_WTlist.csv"'就能看出来,路径被额外的双引号包裹了,而Windows系统不允许路径中存在这类特殊字符,因此触发了OSError。
解决方法:
直接修正ini文件配置:检查
ma_r_s.ini里的MAR1配置项,去掉路径前后的双引号即可。
错误写法:[SAVE_SPACE] MAR1="CSV_Data\MAR1_WTlist.csv"正确写法(二选一):
[SAVE_SPACE] MAR1=CSV_Data\MAR1_WTlist.csv # 用正斜杠更兼容跨平台 MAR1=CSV_Data/MAR1_WTlist.csv若无法修改ini文件,手动去除引号:在读取配置后对字符串做处理,去掉首尾的双引号再转为Path对象:
path_str = parser_path.get("SAVE_SPACE", "MAR1").strip('"') FILE_PATH = Path(path_str)
为什么读取列表时正常?
因为列表内容通常允许包含引号,或者你处理列表时自动忽略了引号字符,但路径解析对字符合法性要求更严格,所以只有在路径场景下触发了错误。
内容的提问来源于stack exchange,提问作者LuC_Illu
相关产品推荐
相关产品推荐

