0

我正在使用一个生成特定文件格式的程序,我必须使用 python 脚本读取和修改。该文件应该是制表符分隔的,但我无法识别制表符。有什么好方法可以读取这种文件,并以相同的格式生成一个新文件?

1. Base Year Data for Calibration
   1.1 Observed Data per Internal Zone
      Sector     Zone   ExogProd InducedPro ExogDemand      Price ValueAdded  Attractor 
           1        1       5000          0          0 14409.8204          0          1 
           1        2        800          0          0 12628.4625          0          1 
           1        3       1100          0          0 12676.3341          0          1 
           2        1          0  3393.2241          0 13944.0613          0          1 
           2        2          0   732.1119          0 12340.4575          0          1 
           2        3          0   974.6630          0 12132.7666          0          1 
           3        1          0  4491.8722          0  2701.8266          0          1 
           3        2          0 12755.9657          0  2445.0556          0          1 
           3        3          0  4752.1604          0  2671.2305          0          1 
           4        1          0  1790.7874          0  3858.0189          0          1 
           4        2          0  3076.6366          0  3337.8784          0          1 
           4        3          0 11132.5806          0  3728.1412          0          1 
           5        1          0    69.5126          0     250000     250000          1 
           5        2          0   109.5081          0     120000     120000          1 
           5        3          0   124.2133          0     180000     180000          1 

问题是,当我使用带有 line.split('\t') 的 python 阅读此内容时,我只以整行结束。

4

2 回答 2

2

正如其他人在评论中指出的那样,这似乎只是一个空格分隔的文件,单元格之间的空格数量可变。如果是这种情况,您可以像这样从特定行中提取单元格:

cells = line.split()

至于重新生成它,您需要将各个列填充到不同的宽度。一种方法是使用如下代码:

widths = [12,9,11,11,11,11,11,11]
paddedCells = [string.rjust(cell,widths[i]) for i,cell in enumerate(cells)]
line = ''.join(paddedCells)
于 2013-07-09T12:45:57.780 回答
0

实际上我正在使用

%12d %8d %10.2f %10.2f %10.2f %10.2f %10.2f %10.1f\n

问题似乎是文件的生成方式。我很确定不是制表符分隔的文件。

于 2013-07-10T07:39:32.600 回答