2009-07-20 17 views
1

スクリプトの一部が値をとり、タブで区切られたテキストファイルに配置しています。だから私はこれを持っている:Pythonの行への書き込み

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 

また、改行を作成するために2番目のFORループの後にt.write( '\ n')を追加する必要はありませんか?上記のコードでは、タブで区切られた1つの長い行を生成することが期待されますが、そうではありません。 t.write( '\ n')を含めるとタブの問題は解決されますが、ダブル '\ n'が返されます...

答えて

1

私は申し訳ありません。私の最後の値は改行の原因となる\ nをすでに持っています。

+0

あと24秒。 – SilentGhost

6

元の行(linesplit)には行末の文字(\n)が含まれているため、必要なものが作成されません。次のforループの前に次のコードを挿入します。

linesplit = linesplit.strip('\n') 

これで問題はありません。

1

最後の値には両方の問題を引き起こす "\ n"が必要です。改行の後に '\ t'が出力されるため、最初の問題、2番目の問題が明らかになる - ミステリー改行は最後の値から来ます。

1

linesplit変数に改行を付けることができます。それを削除するにはstrip()を使用してください。

1

あなたの"value3"の文字列は実際には"value3\n"です。これは魔法の改行と、最初の行以外のすべてのタブです。

0

内部ループは必要ありません。おそらく、あなたは次のものを使うつもりでした:

関連する問題