【发布时间】:2016-06-05 07:23:37
【问题描述】:
我想从数据列表创建一个 csv,但列表各部分的键值不同。该列表的布局如下:
[Game 1]
Publisher=
Developer=
Released=Nov, 2005
Systems=
Genre=Action|Strategy
Perspective=3rd-Person Perspective
Score=4.5
Controls=
Players=
Rating=
Url=http://www.google.com.pl
Description=This cartridge contains six of the 1 kilobyte e......
[Game 2]
Publisher=Home Entertainment Suppliers Pty. Ltd.
Developer=Imagic
Released=1992
Systems=
Genre=Action
Perspective=3rd-Person Perspective
Score=1.5
Controls=Joystick (Digital)|Same/Split-Screen Multiplayer
Players=1-2 Players
Rating=
Url=http://www.google.com
Description=An unlicensed multi-cart from the Australian-bas.....
Goodname=2 Pak Special - Alien Force & Hoppy
NoIntro=
Tosec=2 Pak Special Light Green - Hoppy & Alien Force
每组数据由 [Game *] 分隔,并且对于某些游戏,为每个游戏显示的值可能为空白或不存在,例如游戏 1 中缺少 Goodname=、NoIntro= 和 Tosec=。我不知道知道所需的键/列的总数。理想情况下,我希望每个游戏在 csv 文件中单独一行。
有人对如何将这种格式的数据转换为 csv 有任何想法吗?我难住了。我熟悉 bash 和 python,但我愿意接受有关如何自动转换的任何建议。
提前致谢。
【问题讨论】:
-
我会使用 python,解析配置会更容易。使用ConfigParser 解析您的文件。对于每个部分,使用CSV Module 创建一个条目,并将不存在的值留空,
Game 1,,,"Nov, 2005", ... -
PHP 也可以使用
parse_ini_file()来做到这一点。
标签: python bash csv export-to-csv ini