我想从一个数据列表创建一个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
Full file here
每个数据集由[Game *]分隔,每个游戏的值可以为空或不存在,例如游戏1中缺少Goodname=,NoIntro=和Tosec=。我不知道所需的键/列的总数。理想情况下,我希望每个游戏在csv文件中单独一行。
有人知道如何将这种格式的数据转换成csv吗?我被难倒了。我熟悉bash和python,但我愿意接受任何关于如何自动转换的建议。
先谢谢你了。
2条答案
按热度按时间irlmq6kh1#
在Python中,你可以使用ConfigParser库来阅读INI file,使用csv库来编写逗号分隔的文件。我在下面写了一个小脚本
ini2csv.py
,你可以使用下面的命令来处理你的转换:以下是脚本:
我用你在问题中提供的链接测试了它,它似乎按预期工作。
hs1ihplo2#
你确定你需要verbose python吗?Perl更快...
该脚本的使用方法如下,它输出一个CSV文件。