1

わかりましたので、その余分なスペースを削除する方法を提案する多くの投稿を読みましたが、何らかの理由でそれらの提案を私のシステムに適用できないようですので、ここであなたの助けを求めています.

これらは私のコードの最後の数行です:

    for line in rline[start+5 : end] :
        words = line.split()
        word1 = int(words[1])
        print >>opennew, "%s%s" % (word1,line[30:])

新しい「opennew」ファイルは次のようになります。

    1        0.876153    0.152889   -0.047464

    2        1.011880   -1.161641   -2.096289

    3        0.883419    1.558736    1.966913

    4        2.010367   -1.140725    1.053368

私が本当に欲しいのは:

    1        0.876153    0.152889   -0.047464
    2        1.011880   -1.161641   -2.096289
    3        0.883419    1.558736    1.966913
    4        2.010367   -1.140725    1.053368

とにかく、コードに何かを追加して、入力からその追加の (不要な) 入力/スペースを削除することはありますか?

助けてくれてありがとう。

PS: (コード内で行を分割した理由は聞かないでください。これには、将来の (より良い) コードで適用されるという目的があります)

4

4 に答える 4

7

から改行を取り除いてみてくださいline:

line = line.rstrip("\n")
于 2012-11-14T07:38:40.690 に答える
3

を使用して各行から末尾の空白を削除するかline = line.rstrip()、ステートメントを変更しprintて独自の末尾の改行を省略することができます。

print >>opennew, "%s%s" % (word1,line[30:]),
#                                          ^

ただし、printステートメントの構文が複雑であるため、おそらくrstrip()...を使用する方がよいでしょう。

于 2012-11-14T07:42:50.273 に答える
0

@ThiefMaster または @squiguy が提案したように、別の方法は次のとおりです。

import sys
sys.stdout.write('%s%s' % (word1, line[30:]))

私はおそらく行くだろうが.rstrip

于 2012-11-14T07:44:54.047 に答える
0

ThiefMaster の回答に基づいて、ご提案いただきありがとうございます。Python 独自の改行を削除する代わりに、「-1」を追加することで行の最後の空白を削除することができました。これで問題は修正されました。

    print >>opennew, "%s%s" % (word1,line[30:-1])

私が以前に試した別の方法は

    opennew.write (str(word1) + (line[30:]) + "")

末尾の追加の引用符は、その追加の (不要な) 入力/スペースを排除するものです。それは私にとってはうまくいきましたが、正直なところ理由はわかりません。これらの追加の引用符が何をするか知っていますか?

ありがとう

于 2012-11-15T00:21:56.943 に答える