提取子字符串会使python中的for循环中断

时间:2011-03-10 18:21:36

标签: python

我遇到了一个需要解析的文本文件,我遇到了很多麻烦。这是我解析它的第三次尝试(我尝试了C和php,它们似乎以不同的方式失败)。

我有这个非常简单的代码:

    import fileinput

for line in fileinput.input(['basin_stclair.txt']):
    print line[0:64]

出于某种原因,代码在第一次打印后退出。

如果我打印整行,那么它永远不会停止但行仍然合并。 (如果我只让循环运行一次迭代,我得到两行(14个浮点数)。

文本文件看起来像这样(像这样的几百行,7个浮点数):

1.749766 3.735660 0.294098 310.461737 0.000000 0.231367 0.230505

当我在kate中复制整个文本时,它会混乱而且线条合并。

文本文件是在windows机器上使用excell制作的。 (我正在研究一个linux盒子。)

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您的文件中的换行符有问题。尝试使用Python的通用换行支持打开文件:

for line in open('basin_stclair.txt', 'U'):
    print line[0:64]

答案 1 :(得分:1)

您是否正在尝试打印前64行?如果是这样,尝试这样的事情:

i = 0
for line in fileinput.input(['basin_stclair.txt']):
  print line[0:64]
  if i > 63:
     break
  i = i + 1

您是否尝试打印每行的前64个字符?尝试这样的事情:

for line in fileinput.input(['basin_stclair.txt']):
    if len(line) > 63:
        print line[0:64]