众所周知,数模C题一般都会有大量的数据,比如上学期的广州数模,有整整几个G的数据(二十多个excel表格和八十多万行信息)。虽然Python操作文件很方便,但当时dreamer是第一次参加数模比赛,所以学习了很久。十一月份又有好几场数模比赛,于是dreamer决定复习一下……
csv 是一种 excel 可支持和格式,且存储方式非常简单。它实际上就是用“,
”来分隔相邻的两个列。比如以下三行数据:
a,a,a
b,,b
,c,c
表示的就是:
a | a | a |
---|---|---|
b | b | |
c | c |
现在 dreamer 想做的就是把各个文件按照从左往右的顺序拷到同一个文件当中。比如文件 a 的数据是:
a1,b1,c1
a2,b2
文件 b 的数据是:
a1,b1,c1,d1
a2,b2
a3,b3,c3
a4
那么 dreamer 所希望的最终结果是:
a | b | |||||
---|---|---|---|---|---|---|
a1 | b1 | c1 | a1 | b1 | c1 | d1 |
a2 | b2 | a2 | b2 | |||
a3 | b3 | c3 | ||||
a4 |
这个结果在 csv 文件里就是:
a,,,b,,,
a1,b1,c1,a1,b1,c1,d1
a2,b2,,a2,b2,,
,,,a3,b3,c3,
,,,a4,,,
以上结果的第一行是每一个文件的文件名,文件名与相应文件的第一列对齐。如果相应文件不止一列,那么其它列用空的单元格来补充。
输入的 csv 文件里保证了每一行的末尾都没有“,
”,也就是说像 a 文件的第 2 行的第 3 列一样,如那一格是空的,那么在 b2 后面是没有“,
”的。
输出的 csv 文件里因为是程序的输出结果,为了简化程序,如果末尾是空的,那么还是会显式输出“,
”,如以上的结果所示。
输入文件保证至少有一行一列非空。
输出的文件要保证下一个文件的第一列要紧邻着上一文件的最后一个非空列的右面。最后一个文件只输出到最后一个非空列。
输入
第一行有一个整数 n(1 \le n \le 100),表示有 n 个文件。
接下来描述 n 个文件,每个文件的第一行有一个整数 m(1 \le m \le 100) 和一个字符串 S(1 \le \left | S \right |\le 100) ,m 表示文件的行数。S表示文件名,只包含小写字符。然后有 m 行,每一行是一个字符串 T(1 \le \left | T \right |\le 100) ,T 只包含小写字母,数字和“,
”。
输出
输出把 n 个文件的数据合到一个文件的结果。
样例
标准输入 复制文本 |
2 2 a a1,b1,c1 a2,b2 4 b a1,b1,c1,d1 a2,b2 a3,b3,c3 a4 |
标准输出 复制文本 |
a,,,b,,, a1,b1,c1,a1,b1,c1,d1 a2,b2,,a2,b2,, ,,,a3,b3,c3, ,,,a4,,, |