先頭と末尾のスペースを削除しますか?


109

次のコード行で.stripを使用するのに苦労しています。

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

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

3
ラインとは?例は素晴らしいでしょうか、私たちは推測しています。
jamylak、2012年

f.write(str(re.split( "Tech ID:| Name:| Account#:"、line)[-1])。strip)
fpena06

1
投稿したコードから、ストリップ後の
括弧

の後に関数呼び出しの括弧がありませんstrip。あなたが欲しい:f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip())
Li-aung Yip、2012

1
正規表現に空白を追加するだけではどうですかre.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*。など
georg

回答:


235

strip()を使用して、末尾と先頭のスペースを削除できます。

>>> s = '   abd cde   '
>>> s.strip()
'abd cde'

注:内部スペースは保持されます


31
それが目標である場合は、s.strip()の出力をsに割り当てることを忘れないでください:s = s.strip()
Seanonymous

@GregSchmit誰がそれを見逃すことができたのでしょうか?78好きで誰も気づかなかった?奇妙な。
MYGz 16

@MYGzええ、私は何かを逃したかもしれないと思って、自分自身にさえ質問していました。
グレッグシュミット

2
@GregSchmitどうやら89294の目がそれをスキャンした。シャープペアが1つあります:P
MYGz

明らかに、私は何か間違ったことをしていますが、それが何であるかわかりません。文字列に対してstrip()を実行すると、文字列ではなく文字列のリストが返されます。
user1928764 2017年

5

1つのライナーを複数のラインに拡張します。その後、それは簡単になります:

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

parts = re.split("Tech ID:|Name:|Account #:",line)
wanted_part = parts[-1]
wanted_part_stripped = wanted_part.strip()
f.write(wanted_part_stripped)

3

このstrip()メソッドは、文字列から先頭と末尾の空白文字を削除することに注意してください(渡された引数がない場合)。スペース文字をトリミングしながら、他の文字(改行など)を残したい場合は、この回答が役立つ場合があります。

sample = '  some string\n'
sample_modified = sample.strip(' ')

print(sample_modified)  # will print 'some string\n'

strip([chars]):オプションの文字をstrip([chars])メソッドに渡すことができます。Pythonはこれらの文字の出現を探し、それに応じて指定された文字列をトリミングします。


0

開始ファイル:

     line 1
   line 2
line 3  
      line 4 

コード:

with open("filename.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        stripped = line.strip()
        print(stripped)

出力:

line 1
line 2
line 3
line 4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.