如何将输入文件的5列数据按指定规则转换为2列数据
数据文件重组处理需求
现有一个数据文件,需要读取该文件并按照如下规则生成输出文件:
- 输入文件第一行包含2个数值,第一行第一列的数值无需处理,第一行第二列的数值为关键参数。示例中该值为399,意味着输出文件总共有
399 + 1行。 - 输出文件第一行与输入文件第一行完全一致。
- 输入文件从第二行开始每行均为5列数据,需按行优先顺序读取前
399个数值作为输出文件的第一列,剩余的399个数值按同样顺序读取作为输出文件的第二列。
参考输入输出示例
输入文件
24 399 0.4000000E-01 0.6001000E-01 0.7999000E-01 0.8997000E-01 0.9999000E-01 0.1400000E+00 0.1800000E+00 0.2200000E+00 0.2600000E+00 0.3000000E+00 0.3400000E+00 0.3800000E+00 0.4200000E+00 0.4601000E+00 0.4999000E+00 0.5400000E+00 0.5799000E+00 0.6199000E+00 0.6598000E+00 0.7001000E+00 0.7402000E+00 0.7798000E+00 0.8200000E+00 0.8598000E+00 0.8997000E-01 0.9198000E+00 0.9596000E+00 0.9999000E+00 0.1040000E+01 0.1080000E+01 0.1120000E+01 0.1160000E+01 0.1200000E+01 0.1240000E+01 0.1280000E+01 0.1320000E+01 0.1360000E+01 0.1400000E+01 0.1440000E+01 0.1460000E+01 0.1500000E+01 0.1520000E+01 0.1770000E+01 0.2030000E+01 0.2130000E+01 0.2220000E+01 0.2330000E+01 0.2420000E+01 0.2530000E+01 0.2630000E+01 0.2720000E+01 0.2830000E+01 0.2920000E+01 0.3030000E+01 0.3130000E+01 0.3220000E+01 0.3330000E+01 0.3420000E+01 0.3530000E+01 0.3630000E+01 0.3720000E+01 0.3830000E+01 0.3920000E+01 0.4029000E+01 0.4130000E+01 0.4220000E+01 0.4320000E+01 0.4400000E+01 0.4500000E+01 0.4601000E+01 0.4700000E+01 0.4800000E+01 0.4901000E+01 0.4999000E+01 0.5100000E+01 0.5209000E+01 0.5301000E+01 0.5391000E+01 0.5510000E+01 0.5610000E+01 ... ... ... 0.1522580E-06 0.1430180E-06 0.1343340E-06 0.1261710E-06 0.1185000E-06 0.1112900E-06 0.1045140E-06 0.9814640E-07 0.9216380E-07 0.8654260E-07 0.8126080E-07 0.7629820E-07 0.7163560E-07 0.6725600E-07 0.6314150E-07 0.5927650E-07 0.5564600E-07 0.5223600E-07 0.4903330E-07 0.4602550E-07 0.4320050E-07 0.4054730E-07 0.3805600E-07 0.3571640E-07 0.3351950E-07 0.3145680E-07 0.2951990E-07 0.2770140E-07
注:上述输入文件中的3个点仅用于表示文件还有更多条目,原始文件中不存在这些点。输入文件总共有
161行,包含首行的24 399。
预期输出文件
24 399 0.4000000E-01 0.9710830E-04 0.6001000E-01 0.3634790E-03 0.7999000E-01 0.2970320E-03 0.8997000E-01 0.4819220E-03 0.9999000E-01 0.6664240E-03 0.1400000E+00 0.9319220E-03 0.1800000E+00 0.8522330E-03 0.2200000E+00 0.1070000E-02 0.2600000E+00 0.1410000E-02 0.3000000E+00 0.1960000E-02 0.3400000E+00 0.2990000E-02 0.3800000E+00 0.4890000E-02 0.4200000E+00 0.7280000E-02 0.4601000E+00 0.9280000E-02 0.4999000E+00 0.1116000E-01 0.5400000E+00 0.1302000E-01 0.5799000E+00 0.1467000E-01 0.6199000E+00 0.1620000E-01 0.6598000E+00 0.1806000E-01 0.7001000E+00 0.2001000E-01 0.7402000E+00 0.2166000E-01 0.7798000E+00 0.2316000E-01 0.8200000E+00 0.2413000E-01 0.8598000E+00 0.2455000E-01 0.8997000E+00 0.2450000E-01 0.9198000E+00 0.2463000E-01 0.9596000E+00 0.2486000E-01 0.9999000E+00 0.2525000E-01 0.1040000E+01 0.2540000E-01 0.1080000E+01 0.2539000E-01 0.1120000E+01 0.2555000E-01 0.1160000E+01 0.2560000E-01 0.1200000E+01 0.2572000E-01 0.1240000E+01 0.2590000E-01 0.1280000E+01 0.2596000E-01 0.1320000E+01 0.2603000E-01 ... ... ... 0.2514620E+05 0.5564600E-07 0.2555290E+05 0.5223600E-07 0.2596620E+05 0.4903330E-07 0.2638610E+05 0.4602550E-07 0.2681290E+05 0.4320050E-07 0.2724660E+05 0.4054730E-07 0.2768730E+05 0.3805600E-07 0.2813510E+05 0.3571640E-07 0.2859020E+05 0.3351950E-07 0.2905260E+05 0.3145680E-07 0.2952250E+05 0.2951990E-07 0.3000000E+05 0.2770140E-07
注:输出文件总共有
399 + 1 = 400行,包含首行的24 399。
总结
核心需求是将5列数据重组为2列结构,若对生成规则有疑问,可参考输入输出文件的首尾取值逻辑确认。
内容的提问来源于stack exchange,提问作者Iman
相关产品推荐
相关产品推荐

