-1

首先,我是 python 新手,所以也许我的代码有点奇怪或接近错误,但它有效,所以就是这样。

我一直在用谷歌搜索这个问题,但找不到任何写过的人,我得到了这样一个巨大的列表

    1    2    3    4     5


    2    2    2    2     2


    3    3    3    3     3

等等,请注意它是空格而不是制表符,这是我无法更改的,因为我正在使用 ls-dyna 的打印输出所以我使用这个脚本来删除数字之前的空格,因为它们已经尝试将数字格式化为矩阵时给我带来麻烦,然后我删除空行

for line in input:
    print >> output, line.lstrip(' ')

但由于某种原因,我有 4442 行(这里我的意思是写的行,因为它们是枚举的,所以很容易跟踪)但是输出只有 4411,所以它删除了 31 行,我需要数字这是为什么?

4

1 回答 1

0

lstrip()不会删除行,因为它在语句中使用,该语句print将始终附加换行符(您使用它的方式)。但是它for line in input可能会以一种意想不到的方式遍历行列表,即它可能会跳过行或以您没有预料到的方式组合它们。

也许换行符和回车符会导致这个奇怪的问题。

我建议.lstrip(' ')放弃测试并将输出与输入进行比较,以找到发生变化的地方。可能您应该使用output.write(line)来规避print语句的所有自动操作(尤其是附加换行符)。

然后你应该在输出(或类似的)时使用特殊的分隔符output.write('###' + line)来找出通过输入的迭代是如何发生的。

于 2013-10-14T13:23:29.310 回答