Python写入行流

时间:2009-07-20 15:54:51

标签: python file-io

我的部分脚本正在获取值并将它们放入由制表符分隔的文本文件中。所以我有这个:

for linesplit in fileList:
    for i in range (0, len(linesplit)):
        t.write (linesplit[i]+'\t')

我在文件中得到了我在第一行中的预期输出,但是在以下几行中它们都以\ t开头,就像是:

value1    value2    value3
    value1    value2    value3
    value1    value2    value3

另外,为什么我不需要在第二个FOR循环后添加t.write('\ n')来创建换行符?我希望上面的代码能够产生一长串制表符分隔值,但事实并非如此。如果我包含t.write('\ n'),则选项卡问题已解决,但我得到双倍'\ n'...

6 个答案:

答案 0 :(得分:6)

它不会产生你想要的东西,因为原始行(linesplit)包含你没有剥离的行尾字符(\n)。在第二个for循环之前插入以下内容:

linesplit = linesplit.strip('\n')

那应该做的。

答案 1 :(得分:1)

对不起......在我提交之后,我突然明白了。我的最后一个值已经有一个\ n,它会导致换行符。

答案 2 :(得分:1)

你的最后一个值必须有一个“\ n”,这会导致两个问题:第一个问题是因为它在换行符后输出'\ t',第二个问题应该是显而易见的 - 神秘的换行符来自你的最后一个值。 / p>

答案 3 :(得分:1)

你的lineplit变量可能有换行符。只需使用strip()将其删除。

答案 4 :(得分:1)

您的"value3"字符串确实是"value3\n",它解释了除第一行以外的所有字符串的神奇换行符和无关标签。

答案 5 :(得分:0)

不需要内循环。也许你打算使用:

t.write('\t'.join(linesplit))