如何将CSV转换为数组嵌套数组格式的Plist?
解决CSV转数组嵌套数组格式Plist的方法
我之前正好遇到过一模一样的需求,现成工具要么不好用要么不符合要求,最后自己用Python写了个简单的脚本就搞定了,完全符合你要的数组嵌套数组格式,分享给你:
自定义Python脚本方案
这个脚本用Python标准库的csv和plistlib模块,不需要额外安装依赖,稳定性和可控性都很高:
import csv import plistlib def csv_to_nested_array_plist(csv_path, plist_path): # 初始化嵌套数组结构 nested_array = [] # 读取CSV文件,自动处理逗号分隔的元素 with open(csv_path, 'r', encoding='utf-8') as csv_file: csv_reader = csv.reader(csv_file) for row in csv_reader: # 将CSV的每一行直接作为子数组加入大数组 nested_array.append(row) # 生成Plist文件,保持原顺序不排序 with open(plist_path, 'wb') as plist_file: plistlib.dump(nested_array, plist_file, sort_keys=False) # 执行转换(替换成你的文件路径) if __name__ == "__main__": csv_to_nested_array_plist("your_input.csv", "your_output.plist")
使用步骤:
- 把你的CSV内容保存为
your_input.csv(或者替换成你实际的文件名) - 运行这个Python脚本
- 同目录下会生成
your_output.plist,就是你要的数组嵌套数组格式
为什么这个方案可行?
- 完全处理CSV的所有列,不会像
csv2plist.py那样只取第一列 - 本地运行,不会出现在线工具(比如mindsizzlers)无法连接的问题
- 直接生成数组嵌套数组的Plist,而不是字典数组,完美匹配你的需求
验证效果
用你给出的示例CSV输入,运行脚本后生成的Plist结构会和你提供的示例输出一致:外层是<array>,每一行CSV对应一个子<array>,每个逗号分隔的元素对应一个<string>标签。
如果你的CSV里有特殊字符(比如带引号的内容、转义逗号),csv模块会自动处理,不用担心格式错误。
内容的提问来源于stack exchange,提问作者zeeple
相关产品推荐
相关产品推荐

