[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 wanghan519 于 2024-1-5 15:49 编辑

py写的,不严谨,请小心测试,另外,json本身是啥样的,有可能简单一点
  1. ret = []
  2. with open('a.csv', 'r') as f:
  3.     for i in f:
  4.         arr = i.strip().split('\t')
  5.         a = arr[0]
  6.         b = []
  7.         for j in arr[1:]:
  8.             try:
  9.                 float(j)
  10.                 b.append(j)
  11.             except:
  12.                 if b:
  13.                     ret.append(b)
  14.                 if len(b) == 6:
  15.                     for k in ret:
  16.                         k.append(b[-1])
  17.                 b = [a, j]
  18.         ret.append(b)
  19.         for k in ret:
  20.             k.append(b[-1])
  21. print('\n'.join(map(lambda x:'\t'.join(x[:6]), ret)))
复制代码

TOP

回复 4# zhengwei007


    这也不是json啊。。。
没有可用的工具,能想到的就是用perl或者c#里正则的平衡组,好麻烦
还不如py写的,而且如果改用vb,vb里的数组又不能动态扩展,写起来更麻烦

TOP

回复 8# zhengwei007
  1. ret = []
  2. with open('a.csv', 'r') as f:
  3.     for i in f:
  4.         arr = i.strip().split('\t')
  5.         a = arr[0]
  6.         b = []
  7.         for j in arr[1:]:
  8.             try:
  9.                 float(j)
  10.                 b.append(j)
  11.             except:
  12.                 if b:
  13.                     ret.append(b)
  14.                 if len(b) == 6:
  15.                     for k in ret:
  16.                         k.append(b[-1])
  17.                 b = [a, j]
  18.         ret.append(b)
  19.         for k in ret:
  20.             k.append(b[-1])
  21. with open('b.csv', 'w') as f:
  22.     f.write('\n'.join(map(lambda x:'\t'.join(x[:6]), ret)))
复制代码

TOP

返回列表